container.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <?php namespace Laravel;
  2. return array(
  3. /*
  4. |--------------------------------------------------------------------------
  5. | Core Laravel Components
  6. |--------------------------------------------------------------------------
  7. */
  8. 'laravel.auth' => array('singleton' => true, 'resolver' => function($c)
  9. {
  10. return new Security\Auth($c->resolve('laravel.session'));
  11. }),
  12. 'laravel.cookie' => array('singleton' => true, 'resolver' => function($c)
  13. {
  14. return new Cookie($_COOKIE);
  15. }),
  16. 'laravel.crypter' => array('resolver' => function($c)
  17. {
  18. return new Security\Crypter(MCRYPT_RIJNDAEL_256, 'cbc', Config::get('application.key'));
  19. }),
  20. 'laravel.hasher' => array('singleton' => true, 'resolver' => function($c)
  21. {
  22. return new Security\Hashing\Bcrypt(8, false);
  23. }),
  24. 'laravel.input' => array('singleton' => true, 'resolver' => function($c)
  25. {
  26. $input = array();
  27. switch ($c->resolve('laravel.request')->method())
  28. {
  29. case 'GET':
  30. $input = $_GET;
  31. break;
  32. case 'POST':
  33. $input = $_POST;
  34. break;
  35. case 'PUT':
  36. case 'DELETE':
  37. if ($c->resolve('laravel.request')->spoofed())
  38. {
  39. $input = $_POST;
  40. }
  41. else
  42. {
  43. parse_str(file_get_contents('php://input'), $input);
  44. }
  45. }
  46. unset($input[Request::spoofer]);
  47. return new Input($input, $_FILES);
  48. }),
  49. 'laravel.loader' => array('singleton' => true, 'resolver' => function($c)
  50. {
  51. return new Loader(array(BASE_PATH, MODEL_PATH, LIBRARY_PATH, BASE_PATH), Config::get('aliases'));
  52. }),
  53. 'laravel.request' => array('singleton' => true, 'resolver' => function($c)
  54. {
  55. return new Request($c->resolve('laravel.uri'), $_SERVER, $_POST);
  56. }),
  57. 'laravel.uri' => array('singleton' => true, 'resolver' => function($c)
  58. {
  59. return new URI($_SERVER);
  60. }),
  61. 'laravel.view' => array('singleton' => true, 'resolver' => function($c)
  62. {
  63. require_once SYS_PATH.'view'.EXT;
  64. return new View_Factory($c->resolve('laravel.composer'), VIEW_PATH, STORAGE_PATH.'views/');
  65. }),
  66. 'laravel.composer' => array('singleton' => true, 'resolver' => function($c)
  67. {
  68. return new View_Composer(require APP_PATH.'composers'.EXT);
  69. }),
  70. /*
  71. |--------------------------------------------------------------------------
  72. | Laravel Routing Components
  73. |--------------------------------------------------------------------------
  74. */
  75. 'laravel.routing.router' => array('singleton' => true, 'resolver' => function($c)
  76. {
  77. return new Routing\Router($c->resolve('laravel.routing.loader'), CONTROLLER_PATH);
  78. }),
  79. 'laravel.routing.loader' => array('singleton' => true, 'resolver' => function($c)
  80. {
  81. return new Routing\Loader(APP_PATH, ROUTE_PATH);
  82. }),
  83. 'laravel.routing.caller' => array('resolver' => function($c)
  84. {
  85. return new Routing\Caller($c, require APP_PATH.'filters'.EXT, CONTROLLER_PATH);
  86. }),
  87. /*
  88. |--------------------------------------------------------------------------
  89. | Laravel Caching Components
  90. |--------------------------------------------------------------------------
  91. */
  92. 'laravel.cache.apc' => array('resolver' => function($c)
  93. {
  94. return new Cache\Drivers\APC(Config::get('cache.key'));
  95. }),
  96. 'laravel.cache.file' => array('resolver' => function($c)
  97. {
  98. return new Cache\Drivers\File(CACHE_PATH);
  99. }),
  100. 'laravel.cache.memcached' => array('resolver' => function($c)
  101. {
  102. return new Cache\Drivers\Memcached($c->resolve('laravel.cache.memcache.connection'), Config::get('cache.key'));
  103. }),
  104. 'laravel.cache.memcache.connection' => array('singleton' => true, 'resolver' => function($c)
  105. {
  106. $memcache = new \Memcache;
  107. foreach (Config::get('cache.servers') as $server)
  108. {
  109. $memcache->addServer($server['host'], $server['port'], true, $server['weight']);
  110. }
  111. if ($memcache->getVersion() === false)
  112. {
  113. throw new \Exception('Could not establish memcached connection. Please verify your memcached configuration.');
  114. }
  115. return $memcache;
  116. }),
  117. /*
  118. |--------------------------------------------------------------------------
  119. | Laravel Session Components
  120. |--------------------------------------------------------------------------
  121. */
  122. 'laravel.session.id' => array('singleton' => true, 'resolver' => function($c)
  123. {
  124. return $c->resolve('laravel.cookie')->get('laravel_session');
  125. }),
  126. 'laravel.session.manager' => array('singleton' => true, 'resolver' => function($c)
  127. {
  128. $driver = $c->resolve('laravel.session.'.Config::get('session.driver'));
  129. return new Session\Manager($driver, $c->resolve('laravel.session.transporter'));
  130. }),
  131. 'laravel.session.transporter' => array('resolver' => function($c)
  132. {
  133. return new Session\Transporters\Cookie($c->resolve('laravel.cookie'));
  134. }),
  135. 'laravel.session.apc' => array('resolver' => function($c)
  136. {
  137. return new Session\Drivers\APC($c->resolve('laravel.cache.apc'));
  138. }),
  139. 'laravel.session.cookie' => array('resolver' => function($c)
  140. {
  141. return new Session\Drivers\Cookie($c->resolve('laravel.crypter'), $c->resolve('laravel.cookie'));
  142. }),
  143. 'laravel.session.database' => array('resolver' => function($c)
  144. {
  145. return new Session\Drivers\Database(Database\Manager::connection());
  146. }),
  147. 'laravel.session.file' => array('resolver' => function($c)
  148. {
  149. return new Session\Drivers\File(SESSION_PATH);
  150. }),
  151. 'laravel.session.memcached' => array('resolver' => function($c)
  152. {
  153. return new Session\Drivers\Memcached($c->resolve('laravel.cache.memcached'));
  154. }),
  155. );