registerDirs( [ PATH_SRC.config::get( 'dirs/controllersDir' ), PATH_SRC.config::get( 'dirs/librariesDir' ), PATH_SRC.config::get( 'dirs/modelsDir' ), ] ); $loader->registerNamespaces( [ 'controllers' => ROOT_PATH.config::get( 'dirs/controllersDir' ), 'lib' => ROOT_PATH.config::get( 'dirs/librariesDir' ), 'models' => ROOT_PATH.config::get( 'dirs/modelsDir' ), ] ); $loader->register(); ///////////////////////////////////////////////////////////// // Используем стандартный для CLI контейнер зависимостей $di = new CliDI(); $di->set("config", $config); $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 ); $di->set( 'database', 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 ); $di->set( 'db', function() { return new \db(); }, true ); $di->set( 'common', function() { return new \common(); }, true ); $di->set('modelsManager', function() { return new \Phalcon\Mvc\Model\Manager(); }); $di->set( 'models', function() { return new \models(); }, true ); $di->set( 'sendmail', function() { return new \sendmail(); }, true ); ///////////////////////////////////////////////////////////// // Создаем консольное приложение $console = new ConsoleApp(); $console->setDI($di); ///////////////////////////////////////////////////////////// /** * Определяем консольные аргументы */ $arguments = []; foreach ($argv as $k => $arg) { if ($k === 1) { $arguments["task"] = $arg; } elseif ($k === 2) { $arguments["action"] = $arg; } elseif ($k >= 3) { $arguments["params"][] = $arg; } } try { $console->handle($arguments); } catch (\Phalcon\Exception $e) { echo $e->getMessage(); exit(255); }