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' ), 'frontend\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\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 ( '/downloadImages', [ 'controller' => 'index', 'action' => 'downloadImages', ] ) ->setName( '/downloadImages' ); $router->add ( '/', [ 'controller' => 'index', 'action' => 'index', ] ) ->setName( 'homepage' ); $router->add ( '/user_account', [ 'controller' => 'user', 'action' => 'account', ] ) ->setName( 'user_account' ); $router->add ( '/user_registration', [ 'controller' => 'user', 'action' => 'registration', ] ) ->setName( 'registration' ); $router->add ( '/user_login', [ 'controller' => 'user', 'action' => 'login', ] ) ->setName( 'login' ); $router->add ( '/user_logout', [ 'controller' => 'user', 'action' => 'logout', ] ) ->setName( 'logout' ); $router->add ( '/check_user', [ 'controller' => 'user', 'action' => 'check', ] ) ->setName( 'check' ); $router->add ( '/chosen_project', [ 'controller' => 'user', 'action' => 'chosenProject' ] ) ->setName('chosen_project'); $router->add ( '/project', [ 'controller' => 'project', 'action' => 'index' ] ) ->setName('project'); /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////END_PARSE////////////////////////////////////////////////// $router->add ( '/email_templates_index', [ 'controller' => 'email_templates', 'action' => 'index', ] ) ->setName( 'email_templates_index' ); $router->add ( '/email_templates_index/page/{page:[0-9]+}', [ 'controller' => 'email_templates', 'action' => 'index', ] ) ->setName( 'email_templates_index_paged' ); $router->add ( '/email_templates_add', [ 'controller' => 'email_templates', 'action' => 'add', ] ) ->setName( 'email_templates_add' ); $router->add ( '/email_templates_update/{id:[0-9]+}', [ 'controller' => 'email_templates', 'action' => 'update', ] ) ->setName( 'email_templates_update' ); $router->add ( '/email_templates_delete/{id:[0-9]+}', [ 'controller' => 'email_templates', 'action' => 'delete', ] ) ->setName( 'email_templates_delete' ); $router->add ( '/email_templates_get_one_data', [ 'controller' => 'email_templates', 'action' => 'ajax', ] ) ->setName( 'email_templates_get_one_data' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/event_email_index/type/{type}', [ 'controller' => 'event_email', 'action' => 'index', ] ) ->setName( 'event_email_index' ); $router->add ( '/event_email_index/page/{page:[0-9]+}', [ 'controller' => 'event_email', 'action' => 'index', ] ) ->setName( 'event_email_index_paged' ); $router->add ( '/event_email_add/type/{type}', [ 'controller' => 'event_email', 'action' => 'add', ] ) ->setName( 'event_email_add' ); $router->add ( '/event_email_update/type/{type}/{id:[0-9]+}', [ 'controller' => 'event_email', 'action' => 'update', ] ) ->setName( 'event_email_update' ); $router->add ( '/event_email_delete/{type}/{id:[0-9]+}', [ 'controller' => 'event_email', 'action' => 'delete', ] ) ->setName( 'event_email_delete' ); $router->add ( '/check_ajax_data', [ 'controller' => 'event_email', 'action' => 'checkAjaxData', ] ) ->setName( '/check_ajax_data' ); $router->add ( '/event_mailer', [ 'controller' => 'events', 'action' => 'eventMailer', ] ) ->setName( 'event_mailer' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/standard_email_index', [ 'controller' => 'standard_email', 'action' => 'index', ] ) ->setName( 'standard_email_index' ); $router->add ( '/standard_email_index/page/{page:[0-9]+}', [ 'controller' => 'standard_email', 'action' => 'index', ] ) ->setName( 'standard_email_index_paged' ); $router->add ( '/standard_email_add', [ 'controller' => 'standard_email', 'action' => 'add', ] ) ->setName( 'standard_email_add' ); $router->add ( '/standard_email_update/{id:[0-9]+}', [ 'controller' => 'standard_email', 'action' => 'update', ] ) ->setName( 'standard_email_update' ); $router->add ( '/standard_email_delete/{id:[0-9]+}', [ 'controller' => 'standard_email', 'action' => 'delete', ] ) ->setName( 'standard_email_delete' ); $router->add ( '/standard_email_getuserslike', [ 'controller' => 'standard_email', 'action' => 'getuserslike', ] ) ->setName( 'standard_email_getuserslike' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/admin_email_index', [ 'controller' => 'admin_email', 'action' => 'index', ] ) ->setName( 'admin_email_index' ); $router->add ( '/admin_email_index/page/{page:[0-9]+}', [ 'controller' => 'admin_email', 'action' => 'index', ] ) ->setName( 'admin_email_index_paged' ); $router->add ( '/admin_email_add', [ 'controller' => 'admin_email', 'action' => 'add', ] ) ->setName( 'admin_email_add' ); $router->add ( '/admin_email_update/{id:[0-9]+}', [ 'controller' => 'admin_email', 'action' => 'update', ] ) ->setName( 'admin_email_update' ); $router->add ( '/admin_email_delete/{id:[0-9]+}', [ 'controller' => 'admin_email', 'action' => 'delete', ] ) ->setName( 'admin_email_delete' ); $router->add ( '/admin_email_getuserslike', [ 'controller' => 'admin_email', 'action' => 'getuserslike', ] ) ->setName( 'admin_email_getuserslike' ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/delivery_index', [ 'controller' => 'delivery', 'action' => 'index', ] ) ->setName( 'delivery_index' ); $router->add ( '/delivery_index/project/{id:[0-9]+}', [ 'controller' => 'delivery', 'action' => 'index', ] ) ->setName( 'delivery_index_project' ); $router->add ( '/delivery_index/page/{page:[0-9]+}', [ 'controller' => 'delivery', 'action' => 'index', ] ) ->setName( 'delivery_index_paged' ); $router->add ( '/delivery_add', [ 'controller' => 'delivery', 'action' => 'add', ] ) ->setName( 'delivery_add' ); $router->add ( '/delivery_update/{id:[0-9]+}', [ 'controller' => 'delivery', 'action' => 'update', ] ) ->setName( 'delivery_update' ); $router->add ( '/delivery_more_info/{id:[a-z\_]+}', [ 'controller' => 'delivery', 'action' => 'moreinfo', ] ) ->setName( 'delivery_more_info' ); $router->add ( '/delivery_delete/{id:[0-9]+}', [ 'controller' => 'delivery', 'action' => 'delete', ] ) ->setName( 'delivery_delete' ); $router->add ( '/get_campaign_data', [ 'controller' => 'delivery', 'action' => 'getCampaignList', ] ) ->setName( '/get_campaign_data' ); /////////////////////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/customers_email_index', [ 'controller' => 'customers_email', 'action' => 'index', ] ) ->setName( 'customers_email_index' ); $router->add ( '/customers_email_index/page/{page:[0-9]+}', [ 'controller' => 'customers_email', 'action' => 'index', ] ) ->setName( 'customers_email_index_paged' ); $router->add ( '/customers_email_add', [ 'controller' => 'customers_email', 'action' => 'add', ] ) ->setName( 'customers_email_add' ); $router->add ( '/customers_email_update/{id:[0-9]+}', [ 'controller' => 'customers_email', 'action' => 'update', ] ) ->setName( 'customers_email_update' ); $router->add ( '/customers_email_delete/{id:[0-9]+}', [ 'controller' => 'customers_email', 'action' => 'delete', ] ) ->setName( 'customers_email_delete' ); $router->add ( '/customers_add_one', [ 'controller' => 'customers_email', 'action' => 'addOneCustomer', ] ) ->setName( 'customers_add_one' ); /////////////////////////////////////////////////////////////////////////////////////// $router->add ( '/price_parser_index/project/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'index' ] ) ->setName( 'price_parser_index_project' ); $router->add ( '/price_parser_index', [ 'controller' => 'price_parser', 'action' => 'index' ] ) ->setName( 'price_parser_index' ); $router->add ( '/price_parser_parse', [ 'controller' => 'price_parser', 'action' => 'parse', ] ) ->setName( 'price_parser_parse' ); $router->add ( '/price_parser_sections', [ 'controller' => 'price_parser', 'action' => 'sections', ] ) ->setName( 'price_parser_sections' ); $router->add ( '/price_parser_section_add', [ 'controller' => 'price_parser', 'action' => 'sectionAdd', ] ) ->setName( 'price_parser_section_add' ); $router->add ( '/price_parser_competitors', [ 'controller' => 'price_parser', 'action' => 'competitors', ] ) ->setName( 'price_parser_competitors' ); $router->add ( '/price_parser_competitors_delete/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'competitorsDelete', ] ) ->setName( 'price_parser_competitors_delete' ); $router->add ( '/price_parser_competitors_update/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'competitorsUpdate', ] ) ->setName( 'price_parser_competitors_update' ); $router->add ( '/price_parser_competitors_add', [ 'controller' => 'price_parser', 'action' => 'competitorsAdd', ] ) ->setName( 'price_parser_competitors_add' ); $router->add ( '/price_parser_competitors_rel/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'competitorsRel', ] ) ->setName( 'price_parser_competitors_rel' ); $router->add ( '/update_parser', [ 'controller' => 'price_parser', 'action' => 'updateParser', ] ) ->setName( 'update_parser' ); $router->add ( '/check_reg', [ 'controller' => 'price_parser', 'action' => 'checkReg', ] ) ->setName( 'check_reg' ); $router->add ( '/price_parser_index_sort', [ 'controller' => 'price_parser', 'action' => 'sort', ] ) ->setName( 'price_parser_index_sort' ); $router->add ( '/price_parser_update_link', [ 'controller' => 'price_parser', 'action' => 'updateLink', ] ) ->setName( 'price_parser_update_link' ); $router->add ( '/price_parser_delete_link/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'deleteLink', ] ) ->setName( 'price_parser_delete_link' ); $router->add ( '/price_parser_approve_link/{id:[0-9]+}', [ 'controller' => 'price_parser', 'action' => 'approveLink', ] ) ->setName( 'price_parser_approve_link' ); $router->add ( '/price_parser_index/:action', [ 'controller' => 'price_parser', 'action' => 1, ] ) ->setName( 'price_parser_index_action' ); $router->add ( '/price_parser_for_iframe/{id}', [ 'controller' => 'price_parser', 'action' => 'forIframe', ] ) ->setName( 'price_parser_for_iframe' ); $router->add ( '/price_parser_sections_index', [ 'controller' => 'price_parser', 'action' => 'sectionsIndex', ] ) ->setName( 'price_parser_sections_index' ); $router->add ( '/price_parser_add_manager', [ 'controller' => 'price_parser', 'action' => 'addBrandManagers', ] ) ->setName( 'price_parser_add_manager' ); $router->add ( '/price_parser_delete_manager', [ 'controller' => 'price_parser', 'action' => 'deleteBrandManagers', ] ) ->setName( 'price_parser_delete_manager' ); /////////////////////////////////////////////////////////////////////////////////////////// return $router; }, true ); /////////////////////////////////////////////////////////////////////////// // url $di->set( 'url', function() { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/'); return $url; }, true ); /////////////////////////////////////////////////////////////////////////// //modelsManager $di->set('modelsManager', function(){ $modelsManager = new Phalcon\Mvc\Model\Query(); return $modelsManager; }); // 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 ); /////////////////////////////////////////////////////////////////////////// // MyMailer $di->set( 'MyMailer', function() { return new \myMailer(); }, true ); //UTMParser $di->set( 'UTMParser', function() { return new \UTMParser(); }, true ); // storage $di->set( 'storage', function() { return new \storage(); }, true ); //ServiceExcel $di->set( 'ServiceExcel', function() { return new \ServiceExcel(); }, true ); //a_parser $di->set( 'a_parser', function() { return new \AparserService(); }, 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 ); // 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; }); /////////////////////////////////////////////////////////////////////////// //user /////////////////////////////////////////////////////////////////// // 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 ); /////////////////////////////////////////////////////////////////////////// $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' => 'index', 'action' => 'index' ]); } } // 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() ); } } } ///////////////////////////////////////////////////////////////////////////////