#2 | Phalcon\Mvc\Application->handle
/var/www/fullrest-team/data/www/fullrest.net/public/index.php (299) <?
use Core\Modules\Utils\Controller\MinController;
use Phalcon\Di\Di;
use Phalcon\Mvc\Model;
use Phalcon\Mvc\Dispatcher as MvcDispatcher;
use \Phalcon\Mvc\Dispatcher as PhDispatcher;
// SET GLOBAL sql_mode = "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES"
Model::setup(
array(
'notNullValidations' => false
)
);
mb_internal_encoding("UTF-8");
set_time_limit (0);
ini_set('display_errors', 1);
error_reporting(E_ALL /*^ 'E_DEPRECATED'*/ );
date_default_timezone_set( 'Europe/Moscow' );
(new Phalcon\Support\Debug())->listen(true, true);
require_once('../Core/Lib/Vendor/autoload.php');
try {
$Loader = new Phalcon\Autoload\Loader();
$Loader->setNamespaces(
[
'Core\Lib' => '../Core/Lib/',
'Core\Lib\Navigation' => '../Core/Lib/Navigation/',
'Core\Controller' => '../Core/Controller/',
'Core\Extenders' => '../Core/Extenders/',
'Core\Model' => '../Core/Model/'
],
true
)->register();
$DI = new Phalcon\Di\FactoryDefault();
$DI->get('dispatcher')->setEventsManager($DI->get('eventsManager'));
$DI->set('url', function() {
$url = new \Phalcon\Url();
$url->setBaseUri('/');
return $url;
}, true);
$DI->setShared('debug', 'Core\Lib\Debug')->resolve();
$App = new Phalcon\Mvc\Application($DI);
$DI->setShared('loader', $Loader);
$DI->setShared('overseer', function () {
return Core\Lib\Overseer::getInstance();
});
$DI->setShared('og', function () {
return Core\Lib\OpenGraph::getInstance();
});
$DI->setShared('resconf', function () {
return Core\Lib\ResourcesConfigurator::getInstance();
});
$DI->setShared('hostname', function () {
$Hostname = new Core\Lib\Hostname();
$Hostname->setHostnameConfigDir('../Cache/Sites/');
$Hostname->initialize();
return $Hostname;
})->resolve();
$DI->getShared('debug')->resolve($DI['hostname']->config->debug);
$DI->set('db', function() use ($DI) {
$config = require_once('../Config/mysql.php');
$db = new Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => $config['host'],
"username" => $config['username'],
"password" => $config['password'],
"dbname" => $config['name'],
'charset' =>'UTF8',
'options' =>[
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'
]
));
$db->query(
'
SET
character_set_results = \'utf8\',
character_set_client = \'utf8\',
character_set_connection = \'utf8\',
character_set_database = \'utf8\',
character_set_server = \'utf8\'
'
);
return $db;
});
//echo '<pre>';
//print_r($mysqli->get_charset ());
$DI->set('modelsMetadata', function () {
return new \Phalcon\Mvc\Model\MetaData\Stream(
[
'metaDataDir' => '../Cache/Metadata/'
]
);
});
$DI->set('cookies', function() {
$Cookies = new Phalcon\Http\Response\Cookies();
$Cookies->useEncryption(false);
return $Cookies;
});
/*$DI->set('crypt', function() {
$Crypt = new Phalcon\Crypt();
$Crypt->setKey('KTr]t[S>ATN');
return $Crypt;
});*/
$DI->setShared('session', function () {
$session = new Phalcon\Session\Manager();
$files = new Phalcon\Session\Adapter\Stream();
$session->setAdapter($files)->start();
return $session;
});
$DI->setShared('user', function () {
return Core\Lib\UserHandler::getInstance();
});
$DI->set('security', function () {
$Security = new Core\Lib\Security();
return $Security;
});
$DI->set('assets', function () use ($DI) {
$Assets = new Phalcon\Assets\Manager(new Phalcon\Html\TagFactory(new Phalcon\Html\Escaper()));
$js = $Assets->collection('js');
$css = $Assets->collection('css');
$user = $DI['user'];
if ($user->getSetting('tools', 'dev_compress_css')) {
$css->addCss('/min/common_'.$DI['overseer']->getSiteName().'_css_ver'.$DI['resconf']->getVerCss().'.css');
}
else {
$sysCss = (new MinController())->minCssSystemApp(true);
foreach($sysCss as $i => $v) {
$len = sizeof($v);
for($a = 0; $a < $len; $a++) {
$css->addCss($i.$v[$a]);
}
}
$configCss = $DI['hostname']->config['system']['css'];
$name = $DI['hostname']->config['system']['package']['name'];
$path = 'design/'.mb_strtolower($name).'/';
if (sizeof($configCss)) {
foreach($configCss as $i => $v) {
$css->addCss($path.$v);
}
}
}
if (false && $user->getSetting('tools', 'dev_compress_js') && $DI['hostname']->config['meta']['site_id'] != 0) {
$js->addJs('/min/common_'.$DI['overseer']->getSiteName().'_js_ver'.$DI['resconf']->getVerJS().'_ru.js', false, false, array('async' => 'async'));
}
else {
$sysJs = $DI['db']->query(
'
SELECT
`srjg`.`group_folder`,
`srj`.`js_name`,
`srj`.`js_lang`
FROM `sys_resources_js` AS `srj`, `sys_resources_js_groups` AS `srjg`
WHERE `srjg`.`group_id`=`srj`.`group_id` AND `srj`.`js_type`=\'system\' AND `srj`.`js_skip`=0
ORDER BY `srjg`.`group_order` ASC, `srj`.`js_order` ASC
'
);
while($row = $sysJs->fetch()) {
if ($row['js_lang']) {
$js->addJs('/api/utils/builder/buildLangForJSByDirFile?file='.$row['group_folder'].$row['js_name'].'&trans='.$row['js_lang']);
}
else {
$js->addJs($row['group_folder'].$row['js_name']);
}
}
$modules = $DI['hostname']->config['system']['package']['modules'];
$name = $DI['hostname']->config['system']['package']['name'];
$siteId = $DI['hostname']->config['meta']['site_id'];
$packageId = $DI['hostname']->config['system']['package']['id'];
if($packageId) {
$packageJs = $DI['db']->query('SELECT * FROM `sys_resources_js` WHERE `package_id`='.$packageId.' AND `js_type`=\'package\' ORDER BY `js_order` ASC');
while($row = $packageJs->fetch()) {
if ($row['js_lang']) {
$js->addJs('/api/utils/builder/buildLangForJSByDirFile?file='.'js/'.$row['js_name'].'&trans='.$row['js_lang']);
}
else {
$js->addJs('js/'.$row['js_name']);
}
}
}
$siteJs = $DI['db']->query('SELECT * FROM `sys_resources_js` WHERE `site_id`='.$siteId.' AND `js_type`=\'site\' ORDER BY `js_order` ASC');
while($row = $siteJs->fetch()) {
if ($row['js_lang']) {
$js->addJs('/api/utils/builder/buildLangForJSByDirFile?file='.'js/'.$row['js_name'].'&trans='.$row['js_lang']);
}
else {
$js->addJs('js/'.$row['js_name']);
}
}
$js->addJs('js/packages/'.$name.'.js');
if (sizeof($modules)) {
foreach($modules as $i => $v) {
$addr = 'js/controllers/'.$name.'/'.$i.'.js';
if (!is_readable($addr))
continue;
$js->addJs($addr);
}
}
$js->addJs('js/main.js');
}
return $Assets;
});
$DI->set('view', function () use ($DI) {
$EventManager = new \Phalcon\Events\Manager();
// Пример обработки события в \Core\Lib\Mustache (line 42)
// $EventManager->attach('mustache:testEvent', function () {
// die('WOO WOOOOOOOOOOOOOOOOOOO!!!!11');
// });
//$View = new Phalcon\Mvc\View();
$View = new \Core\Extenders\MvcView();
$View->setEventsManager($EventManager);
$View->setViewsDir($DI['hostname']->config->view->path);
$View->setLayoutsDir('layouts/');
$View->setPartialsDir('partials/');
$View->setMainView('main');
$Engine = new Core\Lib\Mustache($View, $DI);
$NativeEngine = new Phalcon\Mvc\View\Engine\Php($View, $DI);
$View->registerEngines([
'.hbs' => $Engine,
'.phtml' => $NativeEngine
]);
return $View;
});
$html = $App->handle($_SERVER["REQUEST_URI"])->getContent();
if ($DI['request']->isAjax()) {
(new \Core\Lib\JSONResponse(\Core\Lib\JSONResponse::SUCCESS))->send(
[
'status' => 'success',
'hapi' => [
'title' => $DI['overseer']->getMetaTitle(),
'container' => $DI['overseer']->getJSContainer(),
'package' => $DI['overseer']->getJSPackage(),
'controller' => $DI['overseer']->getJSController(),
'action' => $DI['overseer']->getJSAction()
],
'html' => $html
]
);
}
else
echo $html;
} catch (Core\Lib\ApiException $apiException) {
if ($DI['hostname']->config->debug->enableApi) {
$DI['debug']->onUncaughtException($apiException);
}
(new Core\Lib\JSONResponse(\Core\Lib\JSONResponse::ERROR))->send($apiException);
//$DI['response']->setHeader('Content-type', 'application/json')
// ->setJsonContent(["status" => false, "error" => ["message" => $apiException->getMessage()]])->send();
} catch (Phalcon\Exception $e) {
if ($DI['hostname']->config->debug->enable && !$DI['hostname']->checkMode(Core\Lib\Hostname::API_MODE)) {
$DI['debug']->onUncaughtException($e);
}
echo "Error: {$e->getMessage()}<br>{$e->getFile()}:{$e->getLine()}";
} |