<?php
	/**
	 * Сокращенные аннотации & стандарты: http://blog.brolib.ru/articles/22.html ;
	 *
	 * -A, U- Артем Андреевич Балобанов (ainsweu@gmail.com);
	*/
	ini_set('display_errors', 1);
	error_reporting(E_ALL);
	
	$start = microtime(true);
	define("CONSTRUCTOR_PATH", dirname(__FILE__));
	define("PHPMAILER_PATH", CONSTRUCTOR_PATH.'/vendor/phpmailer/phpmailer/src/');
	
	session_start();
	include_once(CONSTRUCTOR_PATH."/core.php");

	$post = file_get_contents('php://input');
	$post = (!empty($post)? json_decode($post, true): []);

	$_POST = array_merge($_POST, $post);
	$_REQUEST= array_merge($_REQUEST, $post);

	$core = new zebraCore();
	$verification= $core->inspection();
	
	if (empty($verification) === false) {
		/** 
		 * -D- Существует ограничение возможностей конструктора, либо обнаружены некоего рода запреты/несоответствия со стандартной сборкой BroLib.Zebra;
		*/
		if (isset($verification["critical"]) === true) {
			/**
			 * -D- Критические несоответствия;
			 * -D, W- Система не может продолжать работу;
			*/
			if ($core->settings["project"]["debugging"] === true)
				print("<pre>".print_r($verification["critical"], true)."</pre>");
			exit;
		}
		if (isset($verification["important"]) === true) {
			/**
			 * -D- Грубые, либо незначительные ошибки;
			*/
			if ($core->settings["project"]["debugging"] === true)
				print("<pre>".print_r($verification["important"], true)."</pre>");
		}
	}
	/**
	 * -D- Подключение модулей & фреймворков;
	*/
	$core->initlibraries();
	
	/**
	 * -D, W- Подключение MySQL ;
	*/
	$core->libraries->postgresql->start();
	
	$core->initModules();

	$core->modules->templates->start();
	$time = microtime(true) - $start ;
?>