Example #1
0
    }
    return $logger;
};
$di['db'] = function () use($di, $config) {
    Model::setup(['notNullValidations' => false]);
    $conn = new DbAdapter($config->database->toArray());
    if (isset($config->eventListeners->db)) {
        $em = $di['eventsManager'];
        foreach ($config->eventListeners->db as $listener => $options) {
            if (is_numeric($listener)) {
                $listener = $options;
                $options = null;
            }
            $em->attach('db', $di->get($listener, [$options]));
        }
        $conn->setEventsManager($em);
    }
    return $conn;
};
if (extension_loaded('apcu')) {
    $di['modelsMetadata'] = function () use($config) {
        return new MetadataApc($config->metadata->toArray());
    };
} else {
    $di['modelsMetadata'] = MetadataMemory::CLASS;
}
$di['eventsManager'] = function () use($di, $config) {
    $eventsManager = new EventsManager();
    $di['eventsManager'] = $eventsManager;
    if (isset($config->eventListeners)) {
        $eventListeners = $config->eventListeners;