public static function configure($config, $env, $option = []) { self::$_engine = null; if (!is_array($env)) { $env = [$env]; } array_unshift($env, 'all'); $user = self::Context()->getPosixUser(); self::getEngine()->configure(NORA_APP_NAME . "." . $user, $config, $env, $option); self::setService('config', self::getEngine()->Config()); $config = self::getService('config'); // PHPの設定 mb_language($config->read('lang', 'ja')); mb_internal_encoding($config->read('encoding', 'utf-8')); // Timelimit set_time_limit($config->read('time_limit', 20)); // サービスの設定 if ($config->has('service')) { foreach ($config->read('service') as $k => $v) { self::setService($k, $v); } } // オートロード if ($config->has('map.class')) { // ノラクラスを読み込む self::setService('autoloader', AutoLoader::register($config->read('map.class'))); } // 出力ハンドラを仕込む self::setService('output', ['class' => 'Nora\\System\\IO\\Writer\\Writer', 'method' => 'create', 'params' => ['@context']]); // デバッガを仕込む self::setService('debugger', ['class' => 'Nora\\Develop\\Debug\\Debugger', 'params' => ['@context']]); // バリデータを仕込む self::setService('validator', ['class' => 'Nora\\System\\Validation\\ValidatorBuilder']); // 多言語対応 self::setService('translator', ['class' => 'Nora\\I18n\\Translator']); // モジュールビルダー self::setService('module', ['class' => 'Nora\\System\\Module\\ModuleBuilder', 'params' => ['@context']]); }
public function testAutoLoad() { AutoLoader::register(['Nora' => __DIR__ . '/../../class']); $this->assertTrue(class_exists('Nora\\Util\\Hash\\Hash')); }