環境
Laravel v5.0.33
前提
artisan optimize
を試してみたいと思い、 config/compile.php
に以下のように記述し artisan optimize
を実行しました。
この記載は以前のデフォルト設定とほぼ同等の記載です。
php
1return [ 2 'files' => [ 3 realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'), 4 realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), 5 realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), 6 realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'), 7 realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'), 8 ], 9 10 'providers' => [ 11 // 12 ], 13];
その後 Providers
配下のファイルが files
に記載されているのが気持ち悪かったので、 providers
に上記設定を移動しました。
php
1return [ 2 'files' => [ 3 // 4 ], 5 6 'providers' => [ 7 'App\Providers\AppServiceProvider', 8 'App\Providers\BusServiceProvider', 9 'App\Providers\ConfigServiceProvider', 10 'App\Providers\EventServiceProvider', 11 'App\Providers\RouteServiceProvider', 12 ], 13];
そして、以前に生成されたファイルを削除し、再度 artisan optimize
を実行しました。
このとき生成された services.json
と compiled.php
それぞれdiffを取ってみたところ、services.json
に差異はありませんでした。
一方の compiled.php
を比較したところ、files
に記載していた際に生成された以下の箇所が、 providers
に記載して生成した compiled.php
には存在しませんでした。
php
1 2namespace App\Providers { 3use Illuminate\Support\ServiceProvider; 4class AppServiceProvider extends ServiceProvider 5{ 6 public function boot() 7 { 8 } 9 public function register() 10 { 11 $this->app->bind('Illuminate\\Contracts\\Auth\\Registrar', 'App\\Services\\Registrar'); 12 } 13} 14} 15 16namespace App\Providers { 17use Illuminate\Bus\Dispatcher; 18use Illuminate\Support\ServiceProvider; 19class BusServiceProvider extends ServiceProvider 20{ 21 public function boot(Dispatcher $dispatcher) 22 { 23 $dispatcher->mapUsing(function ($command) { 24 return Dispatcher::simpleMapping($command, 'App\\Commands', 'App\\Handlers\\Commands'); 25 }); 26 } 27 public function register() 28 { 29 } 30} 31} 32 33namespace App\Providers { 34use Illuminate\Support\ServiceProvider; 35class ConfigServiceProvider extends ServiceProvider 36{ 37 public function register() 38 { 39 config(array()); 40 } 41} 42} 43 44namespace App\Providers { 45use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; 46use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; 47class EventServiceProvider extends ServiceProvider 48{ 49 protected $listen = array('event.name' => array('EventListener')); 50 public function boot(DispatcherContract $events) 51 { 52 parent::boot($events); 53 } 54} 55} 56 57namespace App\Providers { 58use Illuminate\Routing\Router; 59use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 60class RouteServiceProvider extends ServiceProvider 61{ 62 protected $namespace = 'App\\Http\\Controllers'; 63 public function boot(Router $router) 64 { 65 parent::boot($router); 66 } 67 public function map(Router $router) 68 { 69 $router->group(array('namespace' => $this->namespace), function ($router) { 70 require app_path('Http/routes.php'); 71 }); 72 } 73} 74}
質問
ここで疑問が生じたのですが、providers
に記載したのに生成されていないということは、 config/compile.php
の files
providers
にはそれぞれ何をどのように記載をするのが正しいのでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/12/06 19:37