/** * Created by PhpStorm. * User: ZyManch * Date: 25.04.14 * Time: 16:19 */ function array_merge_config() { $result = array(); foreach (func_get_args() as $config) { foreach ($config as $key => $value) { if (is_numeric($key)) { $result[] = $value; } else { if (isset($result[$key]) && is_array($result[$key])) { $result[$key] = array_merge_config($result[$key], $value); } else { $result[$key] = $value; } } } } return $result; }
{ if (!is_string($text)) { $text = var_export($text, 1); } print iconv('UTF-8', 'CP866', $text); } $securePath = dirname(__FILE__) . '/../config.secure.json'; if (!file_exists($securePath)) { print 'Secure file is missed'; return; } $secure = json_decode(file_get_contents($securePath), 1); $yii = dirname(__FILE__) . '/../vendor/yiisoft/yii/framework/yii.php'; $config = dirname(__FILE__) . '/config/console.php'; $staticConfig = dirname(__FILE__) . '/config/static_config.php'; $config = (require_once $config); $staticConfig = (require_once $staticConfig); require_once dirname(__FILE__) . '/merge.php'; $config = array_merge_config($staticConfig, $config); defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); defined('YII_DEBUG') or define('YII_DEBUG', true); require_once $yii; if (isset($config)) { $app = Yii::createApplication('CConsoleApplication', $config); $app->commandRunner->addCommands(YII_PATH . '/cli/commands'); } else { $app = Yii::createApplication('CConsoleApplication', array('basePath' => dirname(__FILE__) . '/cli')); } /** @var $app CConsoleApplication */ Yii::setPathOfAlias('vendor', dirname(__FILE__) . '/../vendor'); $app->run();
/** * Creates console application, if Yii is available */ private static function getYiiApplication() { if (!is_file(YII_PATH . '/yii.php')) { return null; } require_once YII_PATH . '/yii.php'; spl_autoload_register(array('YiiBase', 'autoload')); if (\Yii::app() === null) { $config = (require_once dirname(__FILE__) . '/../config/console.php'); $staticConfig = (require_once dirname(__FILE__) . '/../config/static_config.php'); require_once dirname(__FILE__) . '/../merge.php'; $mergedConfig = array_merge_config($staticConfig, $config); if ($mergedConfig) { $app = \Yii::createConsoleApplication($mergedConfig); } else { throw new \Exception("File from CONSOLE_CONFIG not found"); } } else { $app = \Yii::app(); } return $app; }