array_shift($argv); // 取出 appName ,命令行的第一个参数 $appName = array_shift($argv); /* |-------------------------------------------------------------------------- | 初始化 engine |-------------------------------------------------------------------------- | | 第一个参数为 APP 的根目录 | 第二个参数为 APP 的名称,用于定位配置文件,配置文件放置在 /config/ 目录, | 配置文件命名规则为 modules.{appName}.php | 第三个参数为 APP 的运行模式,支持 web 和 cli,默认是 web , 命令行模式下使用 cli | | */ $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/', $appName ? $appName : 'evaengine', 'cli'); $engine->loadModules(include __DIR__ . '/config/modules.' . $engine->getAppName() . '.php')->bootstrap(); /** @var $output Eva\EvaEngine\CLI\Output\ConsoleOutput */ $output = $engine->getDI()->getOutput(); try { /** @var $dispatcher Phalcon\CLI\Dispatcher */ $dispatcher = $engine->getDI()->getDispatcher(); $engine->getApplication()->handle(array('module' => $dispatcher->getModuleName(), 'task' => $dispatcher->getTaskName(), 'action' => $dispatcher->getActionName(), 'params' => $dispatcher->getParams())); } catch (\Phalcon\Exception $e) { $output->writeln('<error> [ERROR]:' . $e->getMessage() . ' </error>'); $output->writeln(''); $output->writeln('<comment>' . $e->getTraceAsString() . '</comment>'); exit(255); } // 输出内存使用情况, $output->writelnInfo(sprintf("\n" . 'Memory usage: %sMB (peak: %sMB), time cost: %ss', memory_get_usage(true) / 1024 / 1024, memory_get_peak_usage(true) / 1024 / 1024, microtime(true) - $_start_time));
* EvaThumber * URL based image transformation php library * * @link https://github.com/AlloVince/EvaThumber * @copyright Copyright (c) 2012-2013 AlloVince (http://avnpc.com/) * @license http://framework.zend.com/license/new-bsd New BSD License * @author AlloVince */ error_reporting(E_ALL); // Check php version if (version_compare(phpversion(), '5.3.0', '<')) { die(printf('PHP 5.3.0 is required, you have %s', phpversion())); } require __DIR__ . '/../../init_autoloader.php'; $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/../../', 'thumbnail'); $engine->loadModules(array("EvaCommon"))->bootstrap(); $localConfig = $engine->getDI()->get('config'); $config = new EvaThumber\Config\Config(include __DIR__ . '/config.default.php'); if (isset($localConfig->thumbnail->thumbers)) { $config = $config->merge(new EvaThumber\Config\Config(array('thumbers' => $localConfig->thumbnail->thumbers->toArray()))); } try { $thumber = new EvaThumber\Thumber($config); $thumber->show(); } catch (Exception $e) { if (isset($localConfig->thumbnail->default->errorUri) && ($url = $localConfig->thumbnail->default->errorUri)) { header("location:{$url}?msg=" . urlencode($e->getMessage())); } else { throw $e; } }
#!/usr/bin/env php <?php //Send email by Gearman queue require __DIR__ . '/../init_autoloader.php'; $appName = isset($argv[1]) ? $argv[1] : null; $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/..'); if ($appName) { $engine->setAppName($appName); } $engine->loadModules(include __DIR__ . '/../config/modules.' . $engine->getAppName() . '.php')->bootstrap(); $worker = $engine->getDI()->getWorker(); $worker->addFunction('sendmailAsync', 'sendmailAsync'); $logger = new Phalcon\Logger\Adapter\File($engine->getDI()->getConfig()->logger->path . 'worker_sendmail.log'); $logger->info(sprintf("Sendmail worker started by appname %s", $engine->getAppName())); //MySQL interactive_timeout after 8 hours function refreshDbConnect() { global $engine; $di = $engine->getDI(); $di->getDbMaster()->connect(); $di->getDbSlave()->connect(); } function sendmailAsync($job) { global $engine; global $logger; $jobString = $job->workload(); $logger->info(sprintf("Start sending mail by %s", $jobString)); echo sprintf("Start sending mail by %s \n", $jobString); try { $work = json_decode($jobString, true);
#!/usr/bin/env php <?php //Find all available resources and insert them to db require __DIR__ . '/../init_autoloader.php'; $appName = isset($argv[1]) ? $argv[1] : null; $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/..'); if ($appName) { $engine->setAppName($appName); } $engine->loadModules(include __DIR__ . '/../config/modules.' . $engine->getAppName() . '.php')->bootstrap(); $modules = $engine->getDI()->getModuleManager()->getModules(); try { foreach ($modules as $module) { $scanner = new \Eva\EvaPermission\Utils\Scanner($module['dir']); $scanner->scan(); $controllers = $scanner->getControllers(); foreach ($controllers as $controller) { $scanner->process($controller); } } } catch (\Exception $e) { print $e->getMessage(); }
<?php use Doctrine\ORM\Tools\Setup; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Tools\Console\ConsoleRunner; require __DIR__ . '/../init_autoloader.php'; $engine = new \Eva\EvaEngine\Engine(__DIR__ . '/..'); $engine->loadModules(array('EvaCore')); $engine->bootstrap(); $config = $engine->getDI()->get('config'); $paths = array(__DIR__); $isDevMode = true; // the connection configuration $dbParams = array('driver' => 'pdo_mysql', 'user' => $config->dbAdapter->master->username, 'password' => $config->dbAdapter->master->password, 'dbname' => $config->dbAdapter->master->dbname); $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); $entityManager = EntityManager::create($dbParams, $config); /** @var $em \Doctrine\ORM\EntityManager */ $platform = $entityManager->getConnection()->getDatabasePlatform(); $platform->registerDoctrineTypeMapping('enum', 'string'); return ConsoleRunner::createHelperSet($entityManager);