Example #1
0
 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'));
 }
Example #2
0
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'));
}
Example #3
0
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];
}