public function setLevel($level)
 {
     if (!is_string($level)) {
         parent::setLevel((int) $level);
         return;
     }
     if (!defined('\\Monolog\\Logger::' . $level)) {
         return;
     }
     parent::setLevel(constant('\\Monolog\\Logger::' . $level));
 }
예제 #2
0
    mkdir(join(\DIRECTORY_SEPARATOR, array(__DIR__, '..', 'src', 'app', 'Model', 'Entity')));
}
$di = new Container();
/* Config */
$di['config'] = function () {
    return ['server' => ['base_uri' => 'https://localhost'], 'orm' => ['driver' => 'pdo_sqlite', 'memory' => true], 'storage' => ['path' => '']];
};
/* Monolog */
$di['log'] = function () {
    $log = new Logger('api');
    //@note For debugging purposes
    $log->pushHandler(new SyslogHandler('minerva-debug'));
    //A simple release logging handler, which uses the system log. For multi-server setups,
    //this needs to be customized, if you want to collect all errors centralized.
    $syslogHandler = new SyslogHandler('minerva-warning');
    $syslogHandler->setLevel(Logger::ERROR);
    $log->pushHandler($syslogHandler);
    return $log;
};
/* Doctrine */
$di['orm'] = function () use($di) {
    //Create cached annotation reader
    AnnotationRegistry::registerFile(__DIR__ . '/../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php');
    //@note The ArrayCache is not very fast, if possible, replace with e.g. Memcached
    $cache = new ArrayCache();
    $annotationReader = new AnnotationReader();
    $cachedAnnotationReader = new CachedReader($annotationReader, $cache);
    //Hook annotation driver into driver chain
    $driverChain = new DriverChain();
    //Register entities
    $annotationDriver = new AnnotationDriver($cachedAnnotationReader, array(join(\DIRECTORY_SEPARATOR, array(__DIR__, '..', 'src', 'app', 'Model', 'Entity'))));