registerDirs([ ROOT_PATH.config::get( 'dirs/controllersDir' ), ROOT_PATH.config::get( 'dirs/appLibrariesDir' ), ROOT_PATH.config::get( 'dirs/librariesDir' ), ROOT_PATH.config::get( 'dirs/modelsDir' ), ])->register(); $loader->registerNamespaces([ 'controllers' => ROOT_PATH.config::get( 'dirs/controllersDir' ), 'backend\lib' => ROOT_PATH.config::get( 'dirs/appLibrariesDir' ), 'lib' => ROOT_PATH.config::get( 'dirs/librariesDir' ), 'models' => ROOT_PATH.config::get( 'dirs/modelsDir' ), ])->register(); /////////////////////////////////////////////////////////////////////////// #$di = new \Phalcon\DI(); $di = new \Phalcon\DI\FactoryDefault(); /////////////////////////////////////////////////////////////////////////// // request $di->set( 'request', function() { return new \Phalcon\Http\Request(); }, true ); /////////////////////////////////////////////////////////////////////////// // response $di->set( 'response', function() { return new \Phalcon\Http\Response(); }, true ); /////////////////////////////////////////////////////////////////////////// // router $di->set( 'router', function() { ////////////////////////////////////////////////////////////////////// $router = new \Phalcon\Mvc\Router(); ////////////////////////////////////////////////////////////////////// $router->removeExtraSlashes( true ); ////////////////////////////////////////////////////////////////////// $router->add ( '/', [ 'controller' => 'projects', 'action' => 'index', ] ) ->setName( 'homepage' ); ////////////////////////////PROJECTS////////////////////////////////////////// $router->add ( '/project_index', [ 'controller' => 'projects', 'action' => 'index', ] ) ->setName( 'homepage' ); $router->add ( '/add_project', [ 'controller' => 'projects', 'action' => 'add', ] ) ->setName( 'add_project' ); $router->add ( '/delete_project/{id:[0-9]+}', [ 'controller' => 'projects', 'action' => 'delete', ] ) ->setName( 'delete_project' ); $router->add ( '/edit_project/{id:[0-9]+}', [ 'controller' => 'projects', 'action' => 'edit', ] ) ->setName( 'edit_project' ); $router->add ( '/sort_project', [ 'controller' => 'projects', 'action' => 'sort', ] ) ->setName( 'sort_project' ); $router->add ( '/check_project', [ 'controller' => 'projects', 'action' => 'check', ] ) ->setName( 'check' ); ////////////////////////////END_PROJECTS////////////////////////////////////////// ////////////////////////////USERS////////////////////////////////////////// $router->add ( '/user_index', [ 'controller' => 'users', 'action' => 'index', ] ) ->setName( 'homepage' ); $router->add ( '/add_user', [ 'controller' => 'users', 'action' => 'add', ] ) ->setName( 'add_user' ); $router->add ( '/delete_user/{id:[0-9]+}', [ 'controller' => 'users', 'action' => 'delete', ] ) ->setName( 'delete_user' ); $router->add ( '/update_user/{id:[0-9]+}', [ 'controller' => 'users', 'action' => 'update', ] ) ->setName( 'update_user' ); $router->add ( '/sort_user', [ 'controller' => 'users', 'action' => 'sort', ] ) ->setName( 'sort_user' ); $router->add ( '/check_user', [ 'controller' => 'users', 'action' => 'check', ] ) ->setName( 'check' ); /////////////////////////////////////////////////////////////////////// ////////////////////////////END_USERS////////////////////////////////////////// ////////////////////////////PAGE/////////////////////////////////////////////// $router->add ( '/index_page', [ 'controller' => 'page', 'action' => 'index', ] ) ->setName( 'Index' ); $router->add ( '/login_page', [ 'controller' => 'page', 'action' => 'login', ] ) ->setName( 'Login' ); $router->add ( '/logout_page', [ 'controller' => 'page', 'action' => 'logout', ] ) ->setName( 'Logout' ); $router->add ( '/downloadImages', [ 'controller' => 'page', 'action' => 'downloadImages', ] ) ->setName( '/downloadImages' ); ////////////////////////////END_PAGE////////////////////////////////////////// ////////////////////////////PARSE/////////////////////////////////////////////// $router->add ( '/index_parser', [ 'controller' => 'parser', 'action' => 'index', ] ) ->setName( 'index_parser' ); $router->add ( '/delete_parser', [ 'controller' => 'parser', 'action' => 'delete', ] ) ->setName( 'delete_parser' ); $router->add ( '/update_parser', [ 'controller' => 'parser', 'action' => 'update', ] ) ->setName( 'update_parser' ); $router->add ( '/add_parser', [ 'controller' => 'parser', 'action' => 'add', ] ) ->setName( 'add_parser' ); $router->add ( '/pars_parser', [ 'controller' => 'parser', 'action' => 'pars', ] ) ->setName( 'pars_parser' ); /////////////////////////////////////////////////////END_PARSE////////////////////////////////////////////////// ////////////////////////////////////////////////////MESSAGE///////////////////////////////////////////////////// $router->add ( '/index_message/{type}', [ 'controller' => 'message', 'action' => 'index', ] ) ->setName( 'index_message' ); $router->add ( '/delete_message/{id:[0-9]+}/{type}', [ 'controller' => 'message', 'action' => 'delete', ] ) ->setName( 'delete_message' ); $router->add ( '/update_message/{id:[0-9]+}', [ 'controller' => 'message', 'action' => 'update', ] ) ->setName( 'update_message' ); $router->add ( '/add_message', [ 'controller' => 'message', 'action' => 'add', ] ) ->setName( 'add_message' ); $router->add ( '/pars_message', [ 'controller' => 'message', 'action' => 'pars', ] ) ->setName( 'pars_message' ); $router->add ( '/set_message', [ 'controller' => 'message', 'action' => 'set', ] ) ->setName( 'pars_message' ); //////////////////////////////////////////////////END_MESSAGE/////////////////////////////////////////////////// ////////////////////////////////////////////////////FIELDS///////////////////////////////////////////////////// $router->add ( '/index_fields/{type}', [ 'controller' => 'fields', 'action' => 'index', ] ) ->setName( 'index_fields' ); $router->add ( '/delete_fields/{id:[0-9]+}/{type}', [ 'controller' => 'fields', 'action' => 'delete', ] ) ->setName( 'delete_fields' ); $router->add ( '/update_fields/{id:[0-9]+}/{type}', [ 'controller' => 'fields', 'action' => 'update', ] ) ->setName( 'update_fields' ); $router->add ( '/add_fields/{type}', [ 'controller' => 'fields', 'action' => 'add', ] ) ->setName( 'add_fields' ); $router->add ( '/pars_fields', [ 'controller' => 'fields', 'action' => 'pars', ] ) ->setName( 'pars_fields' ); $router->add ( '/set_fields', [ 'controller' => 'fields', 'action' => 'set', ] ) ->setName( 'pars_fields' ); //////////////////////////////////////////////////END_FIELDS/////////////////////////////////////////////////// ///////////////////////////////////////////////////Brief_blocks///////////////////////////////////////////////// $router->add ( '/index_brief_blocks', [ 'controller' => 'brief_blocks', 'action' => 'index', ] ) ->setName( 'index_brief_blocks' ); $router->add ( '/delete_brief_blocks/{id:[0-9]+}', [ 'controller' => 'brief_blocks', 'action' => 'delete', ] ) ->setName( 'delete_brief_blocks' ); $router->add ( '/update_brief_blocks/{id:[0-9]+}', [ 'controller' => 'brief_blocks', 'action' => 'update', ] ) ->setName( 'update_brief_blocks' ); $router->add ( '/update_brief_blocks_fields/{id:[0-9]+}', [ 'controller' => 'brief_blocks', 'action' => 'updateFields', ] ) ->setName( 'update_brief_blocks_fields' ); $router->add ( '/add_brief_blocks', [ 'controller' => 'brief_blocks', 'action' => 'add', ] ) ->setName( 'add_brief_blocks' ); $router->add ( '/pars_brief_blocks', [ 'controller' => 'brief_blocks', 'action' => 'pars', ] ) ->setName( 'pars_brief_blocks' ); $router->add ( '/set_brief_blocks', [ 'controller' => 'brief_blocks', 'action' => 'set', ] ) ->setName( 'pars_brief_blocks' ); //////////////////////////////////////////////////END_Brief_blocks/////////////////////////////////////////////////// ///////////////////////////////////////////////////Brief///////////////////////////////////////////////// $router->add ( '/index_brief', [ 'controller' => 'brief', 'action' => 'index', ] ) ->setName( 'index_brief' ); $router->add ( '/get_brief_form_data', [ 'controller' => 'brief', 'action' => 'getBriefFormData', ] ) ->setName( 'get_brief_form_data' ); $router->add ( '/delete_brief/{id:[0-9]+}', [ 'controller' => 'brief', 'action' => 'delete', ] ) ->setName( 'delete_brief' ); $router->add ( '/update_brief/{id:[0-9]+}', [ 'controller' => 'brief', 'action' => 'update', ] ) ->setName( 'update_brief' ); $router->add ( '/add_brief/{id:[0-9]+}', [ 'controller' => 'brief', 'action' => 'add', ] ) ->setName( 'add_brief' ); $router->add ( '/pars_brief', [ 'controller' => 'brief', 'action' => 'pars', ] ) ->setName( 'pars_brief' ); $router->add ( '/set_brief', [ 'controller' => 'brief', 'action' => 'set', ] ) ->setName( 'pars_brief' ); //////////////////////////////////////////////////END_Brief/////////////////////////////////////////////////// ////////////////////////////////////////////////////REQUEST///////////////////////////////////////////////////// $router->add ( '/index_request', [ 'controller' => 'request', 'action' => 'index', ] ) ->setName( 'index_request' ); $router->add ( '/delete_request/{id:[0-9]+}', [ 'controller' => 'request', 'action' => 'delete', ] ) ->setName( 'delete_request' ); $router->add ( '/update_request/{id:[0-9]+}', [ 'controller' => 'request', 'action' => 'update', ] ) ->setName( 'update_request' ); $router->add ( '/add_request', [ 'controller' => 'request', 'action' => 'add', ] ) ->setName( 'add_request' ); $router->add ( '/pars_request', [ 'controller' => 'request', 'action' => 'pars', ] ) ->setName( 'pars_request' ); $router->add ( '/set_request', [ 'controller' => 'request', 'action' => 'set', ] ) ->setName( 'pars_request' ); //////////////////////////////////////////////////END_REQUEST/////////////////////////////////////////////////// //////////////////////////////////////////////////I_Frame////////////////////////////////////////////////////// $router->add ( '/pdf_price', [ 'controller' => 'iframs', 'action' => 'pdfPrice', ] ) ->setName( 'pdf_price' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////Trash////////////////////////////////////////////////////////////// $router->add ( '/trash_index', [ 'controller' => 'trash', 'action' => 'index', ] ) ->setName( 'trash' ); /////////////////////////////////////////////////End_trash////////////////////////////////////////////////////////////// return $router; }, true ); /////////////////////////////////////////////////////////////////////////// // MyMailer $di->set( 'MyMailer', function() { return new \MyMailer(); }, true ); //UTMParser $di->set( 'UTMParser', function() { return new \UTMParser(); }, true ); //ServiceExcel $di->set( 'ServiceExcel', function() { return new \ServiceExcel(); }, true ); //BriefConstructor $di->set( 'BriefConstructor', function() { return new \BriefConstructor(); }, true ); /////////////////////////////////////////////////////////////////////////// // url $di->set( 'url', function() { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/'); return $url; }, true ); /////////////////////////////////////////////////////////////////////////// // cache $di->set( 'cache', function() { $cache = new \Phalcon\Cache\Frontend\Data([ 'lifetime' => 60, ]); return new \Phalcon\Cache\Backend\Memcache( $cache, [ 'host' => '127.0.0.1', 'port' => 11211, ] ); }, true ); /////////////////////////////////////////////////////////////////////////// // i18n $di->set( 'i18n', function() { return new \Phalcon\Translate\Adapter\NativeArray([ 'content' => require( ROOT_PATH.config::get( 'dirs/messagesDir' ).'ru.php' ) ]); }, true ); /////////////////////////////////////////////////////////////////////////// // database $di->set( 'db', function() { $config = [ 'host' => config::get('global#database/server'), 'username' => config::get('global#database/user'), 'password' => config::get('global#database/passwd'), 'dbname' => config::get('global#database/db'), 'schema' => 'public', ]; $database = new \Phalcon\Db\Adapter\Pdo\Postgresql( $config ); return $database; }, true ); /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// //Set a models manager $di->set('modelsManager', function() { return new \Phalcon\Mvc\Model\Manager(); }); //Use the memory meta-data adapter or other $di->set('modelsMetadata', new \Phalcon\Mvc\Model\MetaData\Memory()); /////////////////////////////////////////////////////////////////////////// // common $di->set( 'common', function() { return new \common(); }, true ); //rds $di->set( 'rds', function() { return new \rds(); }, true ); /////////////////////////////////////////////////////////////////////////// // storage $di->set( 'storage', function() { return new \storage(); }, true ); /////////////////////////////////////////////////////////////////////////// // session $di->set('session', function() { $session = new Phalcon\Session\Adapter\Files(); $session->start(); return $session; }, true ); /////////////////////////////////////////////////////////////////////////// // flash $di->set( 'flash', function() { return new \Phalcon\Flash\Session(); }, true ); /////////////////////////////////////////////////////////////////////////// // cookies $di->set( 'cookies', function () { $cookies = new \Phalcon\Http\Response\Cookies(); $cookies->useEncryption(false); return $cookies; }); /////////////////////////////////////////////////////////////////////////// // view $di->set( 'view', function() { $view = new \Phalcon\Mvc\View(); $view->setViewsDir( ROOT_PATH.config::get( 'dirs/viewsDir' ) ); $view->registerEngines([ '.php' => '\Phalcon\Mvc\View\Engine\Php' ]); return $view; }, true ); //exelphp $di->set( 'exelphp', function() { return new \exelphp(); }, true ); /////////////////////////////////////////////////////////////////////////// $di->set( 'dispatcher', function() { // Create/Get an EventManager $eventsManager = new \Phalcon\Events\Manager(); // Attach a listener $eventsManager->attach( 'dispatch', function($event, $dispatcher, $exception) { if ($event->getType() == 'beforeExecuteRoute') { $role = new \security(); if(!$role->check($dispatcher)) { $dispatcher->forward([ 'controller' => 'page', 'action' => 'login' ]); } } // The controller exists but the action not if ($event->getType() == 'beforeNotFoundAction') { $dispatcher->forward([ 'controller' => 'page', 'action' => 'error404' ]); return false; } // Alternative way, controller or action doesn't exist if ($event->getType() == 'beforeException') { switch ($exception->getCode()) { case \Phalcon\Dispatcher::EXCEPTION_HANDLER_NOT_FOUND: case \Phalcon\Dispatcher::EXCEPTION_ACTION_NOT_FOUND: $dispatcher->forward([ 'controller' => 'page', 'action' => 'error404' ]); return false; } } }); $dispatcher = new \Phalcon\Mvc\Dispatcher(); $dispatcher->setDefaultNamespace('controllers'); // Bind the EventsManager to the dispatcher $dispatcher->setEventsManager($eventsManager); return $dispatcher; }, true ); /////////////////////////////////////////////////////////////////////////// $application = new \Phalcon\Mvc\Application(); $application->setDI($di); /////////////////////////////////////////////////////////////////////////// die( $application->handle()->getContent() ); /////////////////////////////////////////////////////////////////////////// } catch (Phalcon\Exception $e) { if( IS_PRODUCTION ) { // TODO } else { echo( ob_get_flush() ); if( class_exists('exceptions') ) { $z = new \exceptions(); return $z->handle($e); } else { die( '[Phalcon\Exception] '.$e->getMessage() ); } } } catch (PDOException $e) { if( IS_PRODUCTION ) { // TODO } else { echo( ob_get_flush() ); if( class_exists('exceptions') ) { $z = new \exceptions(); return $z->handle($e); } else { die( '[PDOException] '.$e->getMessage() ); } } } catch (Exception $e) { if( IS_PRODUCTION ) { // TODO } else { echo( ob_get_flush() ); if( class_exists('exceptions') ) { $z = new \exceptions(); return $z->handle($e); } else { die( '[Exception] '.$e->getMessage() ); } } } ///////////////////////////////////////////////////////////////////////////////