<?php namespace Laravel; return array( /* |-------------------------------------------------------------------------- | Laravel Routing Components |-------------------------------------------------------------------------- | | The following components are used by the Laravel routing system. | | The router is used to map a given method and URI to a route intance. | | The route loader is responsible for loading the appropriates routes file | for a given request URI, as well as loading all routes when the framework | needs to find a named route wtihin the application. | | The route caller is responsible for receiving a route and taking the | appropriate action to execute that route. Some routes delegate execution | to a controller, so this class will also resolve controllers out of the | container and call the appropriate methods on those controllers. | */ 'laravel.routing.router' => array('singleton' => true, 'resolver' => function($c) { return new Routing\Router($c->core('routing.loader'), CONTROLLER_PATH); }), 'laravel.routing.loader' => array('singleton' => true, 'resolver' => function($c) { return new Routing\Loader(APP_PATH, ROUTE_PATH); }), 'laravel.routing.caller' => array('resolver' => function($c) { return new Routing\Caller($c, require APP_PATH.'filters'.EXT, CONTROLLER_PATH); }), /* |-------------------------------------------------------------------------- | Laravel Database Connectors |-------------------------------------------------------------------------- | | The following components are used to establish PDO database connections | to the various database systems supported by Laravel. By resolving these | connectors out of the IoC container, new database systems may be added | by simply registering a connector in the container. | */ 'laravel.database.connectors.sqlite' => array('resolver' => function($c) { return new Database\Connectors\SQLite(DATABASE_PATH); }), 'laravel.database.connectors.mysql' => array('resolver' => function($c) { return new Database\Connectors\MySQL; }), 'laravel.database.connectors.pgsql' => array('resolver' => function($c) { return new Database\Connectors\Postgres; }), /* |-------------------------------------------------------------------------- | Laravel Caching Components |-------------------------------------------------------------------------- | | The following components are used by the wonderfully simple Laravel cache | system. Each driver is resolved through the container, so new drivers may | be added by simply registering them in the container. | */ 'laravel.cache.apc' => array('resolver' => function($c) { return new Cache\Drivers\APC(Config::get('cache.key')); }), 'laravel.cache.file' => array('resolver' => function($c) { return new Cache\Drivers\File(CACHE_PATH); }), 'laravel.cache.redis' => array('resolver' => function() { return new Cache\Drivers\Redis(Redis::db()); }), 'laravel.cache.memcached' => array('resolver' => function($c) { return new Cache\Drivers\Memcached($c->core('cache.memcache.connection'), Config::get('cache.key')); }), 'laravel.cache.memcache.connection' => array('singleton' => true, 'resolver' => function($c) { $memcache = new \Memcache; foreach (Config::get('cache.memcached') as $server) { $memcache->addServer($server['host'], $server['port'], true, $server['weight']); } if ($memcache->getVersion() === false) { throw new \Exception('Could not establish memcached connection. Please verify your memcached configuration.'); } return $memcache; }), /* |-------------------------------------------------------------------------- | Laravel Session Components |-------------------------------------------------------------------------- | | The following components are used by the Laravel session system. | | The framework allows the session ID to be transported via a variety | of different mechanisms by resolve the ID itself and the session | transporter instance out of the container. This allows sessions | to be used by clients who cannot receive cookies. | | The session manager is responsible for loading the session payload | from the session driver, as well as examining the payload validitiy | and things like the CSRF token. | */ 'laravel.session.transporter' => array('resolver' => function($c) { return new Session\Transporters\Cookie; }), 'laravel.session.apc' => array('resolver' => function($c) { return new Session\Drivers\APC($c->core('cache.apc')); }), 'laravel.session.cookie' => array('resolver' => function($c) { return new Session\Drivers\Cookie; }), 'laravel.session.database' => array('resolver' => function($c) { return new Session\Drivers\Database(Database\Manager::connection()); }), 'laravel.session.file' => array('resolver' => function($c) { return new Session\Drivers\File(SESSION_PATH); }), 'laravel.session.redis' => array('resolver' => function($c) { return new Session\Drivers\Redis($c->core('cache.redis')); }), 'laravel.session.memcached' => array('resolver' => function($c) { return new Session\Drivers\Memcached($c->core('cache.memcached')); }), );