public function test() { $config = ['foo' => ['bar' => 1]]; Config::merge($config); $this->assertSame($config, Config::get()); $this->assertSame($config['foo'], Config::get('foo')); $this->assertSame($config['foo']['bar'], Config::get('foo', 'bar')); $this->assertSame(Config::get('foo', 'bar'), Config::get(['foo', 'bar'])); $this->assertFalse(Config::get('foobar')); }
function __bootstrap() { static $boot = false; if ($boot) { return true; } $boot = true; // 加载配置文件 \Owl\Config::merge(require ROOT_DIR . '/config/main.php'); // 初始化外部服务容器 \Owl\Service\Container::getInstance()->setServices(\Owl\Config::get('services')); }
function get_logger($name = 'default') { static $loggers = []; $name = strtolower($name); if (!isset($loggers[$name])) { $logger = new \Monolog\Logger($name); $config = Config::get('loggers', $name); if (!$config) { throw new \Exception('Undefined logger: ' . $name); } foreach ($config['handlers'] as $handler_config) { $class = new \ReflectionClass($handler_config['class']); $arguments = \Owl\array_get_in($handler_config, ['arguments']) ?: []; $handler = $class->newInstanceArgs($arguments); if (isset($handler_config['level'])) { $handler->setLevel($handler_config['level']); } $logger->pushHandler($handler); } $loggers[$name] = $logger; } return $loggers[$name]; }