Bolt\Provider\DatabaseServiceProvider::register PHP Метод

register() публичный Метод

public register ( Silex\Application $app )
$app Silex\Application
    public function register(Application $app)
    {
        if (!isset($app['db'])) {
            $app->register(new \Silex\Provider\DoctrineServiceProvider(), ['db.options' => $app['config']->get('general/database')]);
        }
        $app['db.config'] = $app->share($app->extend('db.config', function ($config) use($app) {
            $config->setFilterSchemaAssetsExpression($app['schema.tables_filter']);
            return $config;
        }));
        $app['db.doctrine_listener'] = $app->share(function ($app) {
            return new DoctrineListener($app['logger.system'], $app['controller.exception']);
        });
        // For each database connection add this class as an event subscriber
        $app['dbs.event_manager'] = $app->share($app->extend('dbs.event_manager', function ($managers) use($app) {
            /** @var \Pimple $managers */
            foreach ($managers->keys() as $name) {
                /** @var \Doctrine\Common\EventManager $manager */
                $manager = $managers[$name];
                $manager->addEventSubscriber($app['db.doctrine_listener']);
            }
            return $managers;
        }));
        $app['db.query_cache'] = $app->share(function ($app) {
            $cache = $app['config']->get('general/caching/database') == true ? $app['cache'] : new ArrayCache();
            return $cache;
        });
        $app['db.query_cache_profile'] = $app->share(function ($app) {
            $lifetime = $app['config']->get('general/caching/duration') ?: 0;
            return new QueryCacheProfile($lifetime, 'bolt.db', $app['db.query_cache']);
        });
        $app['db'] = $app->share($app->extend('db', function ($db) use($app) {
            $db->setQueryCacheProfile($app['db.query_cache_profile']);
            return $db;
        }));
    }
DatabaseServiceProvider