container.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?php namespace Laravel;
  2. return array(
  3. /*
  4. |--------------------------------------------------------------------------
  5. | Laravel Support Components
  6. |--------------------------------------------------------------------------
  7. */
  8. 'laravel.file' => array('singleton' => true, 'resolver' => function()
  9. {
  10. return new File;
  11. }),
  12. /*
  13. |--------------------------------------------------------------------------
  14. | Laravel View Components
  15. |--------------------------------------------------------------------------
  16. */
  17. 'laravel.composers' => array('singleton' => true, 'resolver' => function()
  18. {
  19. return require APP_PATH.'composers'.EXT;
  20. }),
  21. /*
  22. |--------------------------------------------------------------------------
  23. | Laravel Routing Components
  24. |--------------------------------------------------------------------------
  25. */
  26. 'laravel.routing.router' => array('singleton' => true, 'resolver' => function($container)
  27. {
  28. return new Routing\Router($container->resolve('laravel.request'), require APP_PATH.'routes'.EXT);
  29. }),
  30. 'laravel.routing.handler' => array('resolver' => function($container)
  31. {
  32. return new Routing\Handler($container->resolve('laravel.request'), require APP_PATH.'filters'.EXT);
  33. }),
  34. /*
  35. |--------------------------------------------------------------------------
  36. | Laravel Security Components
  37. |--------------------------------------------------------------------------
  38. */
  39. 'laravel.security.auth' => array('resolver' => function($container)
  40. {
  41. $hasher = $container->resolve('laravel.security.hashing.engine');
  42. return new Security\Auth(Session\Manager::driver(), $hasher);
  43. }),
  44. 'laravel.security.hashing.engine' => array('resolver' => function()
  45. {
  46. return new Security\Hashing\BCrypt(10, false);
  47. }),
  48. /*
  49. |--------------------------------------------------------------------------
  50. | Laravel Session Components
  51. |--------------------------------------------------------------------------
  52. */
  53. 'laravel.session.driver' => array('resolver' => function()
  54. {
  55. return Session\Manager::driver();
  56. }),
  57. /*
  58. |--------------------------------------------------------------------------
  59. | Laravel Cookie Session Components
  60. |--------------------------------------------------------------------------
  61. */
  62. 'laravel.session.cookie' => array('resolver' => function($container)
  63. {
  64. return new Session\Cookie(new Crypter, $container->resolve('laravel.request')->input->cookies);
  65. }),
  66. /*
  67. |--------------------------------------------------------------------------
  68. | Laravel Database Session Components
  69. |--------------------------------------------------------------------------
  70. */
  71. 'laravel.session.database' => array('resolver' => function($container)
  72. {
  73. return new Session\Database($container->resolve('laravel.session.database.connection'));
  74. }),
  75. 'laravel.session.database.connection' => array('resolver' => function()
  76. {
  77. return Database\Manager::connection();
  78. }),
  79. /*
  80. |--------------------------------------------------------------------------
  81. | Laravel File Cache & Session Components
  82. |--------------------------------------------------------------------------
  83. */
  84. 'laravel.cache.file' => array('resolver' => function()
  85. {
  86. return new Cache\File(new File);
  87. }),
  88. 'laravel.session.file' => array('resolver' => function()
  89. {
  90. return new Session\File(new File);
  91. }),
  92. /*
  93. |--------------------------------------------------------------------------
  94. | Laravel APC Cache & Session Components
  95. |--------------------------------------------------------------------------
  96. */
  97. 'laravel.cache.apc' => array('resolver' => function($container)
  98. {
  99. return new Cache\APC($container->resolve('laravel.cache.apc_engine'));
  100. }),
  101. 'laravel.cache.apc_engine' => array('resolver' => function()
  102. {
  103. return new Cache\APC_Engine;
  104. }),
  105. 'laravel.session.apc' => array('resolver' => function($container)
  106. {
  107. return new Session\APC($container->resolve('laravel.cache.apc'));
  108. }),
  109. /*
  110. |--------------------------------------------------------------------------
  111. | Laravel Memcached Cache & Session Components
  112. |--------------------------------------------------------------------------
  113. */
  114. 'laravel.cache.memcached' => array('resolver' => function($container)
  115. {
  116. return new Cache\Memcached($container->resolve('laravel.memcache'));
  117. }),
  118. 'laravel.session.memcached' => array('resolver' => function($container)
  119. {
  120. return new Session\Memcached($container->resolve('laravel.cache.memcached'));
  121. }),
  122. 'laravel.memcache' => array('singleton' => true, 'resolver' => function()
  123. {
  124. if ( ! class_exists('Memcache'))
  125. {
  126. throw new \Exception('Attempting to use Memcached, but the Memcache PHP extension is not installed on this server.');
  127. }
  128. $memcache = new \Memcache;
  129. foreach (Config::get('cache.servers') as $server)
  130. {
  131. $memcache->addServer($server['host'], $server['port'], true, $server['weight']);
  132. }
  133. if ($memcache->getVersion() === false)
  134. {
  135. throw new \Exception('Memcached is configured. However, no connections could be made. Please verify your memcached configuration.');
  136. }
  137. return $memcache;
  138. }),
  139. );