public static function get($keys = null) { $keys = $keys === null ? [] : is_array($keys) ? $keys : func_get_args(); try { return \Owl\array_get_in(self::$config, $keys); } catch (\RuntimeException $ex) { return false; } }
/** * @depends testArraySetIn */ public function testArrayGetIn(array $target) { $this->assertSame(3, \Owl\array_get_in($target, ['f'])); $this->assertSame(1, \Owl\array_get_in($target, ['a', 'b', 'c', 'd'])); $this->assertSame(2, \Owl\array_get_in($target, ['a', 'b', 'e'])); $this->assertSame(['d' => 1], \Owl\array_get_in($target, ['a', 'b', 'c'])); $this->assertFalse(\Owl\array_get_in($target, ['g'])); $this->assertFalse(\Owl\array_get_in($target, ['a', 'c'])); $this->assertFalse(\Owl\array_get_in($target, ['a', 'b', 'c', 'd', 'e'])); return $target; }
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]; }
/** * @param string $key * @param array|string $path * * @return mixed|false */ public function getIn($key, $path) { $target = $this->get($key); $path = (array) $path; if (!is_array($target)) { return false; } return \Owl\array_get_in($target, $path); }