我试图在Laravel AppServiceProvider中绑定一些服务,但服务没有绑定。我认为,甚至没有调用AppServiceProvider。实际上,我做了一个新的工作。
所以我的问题是,我做错了吗?或者没有调用AppServiceProvider?
答案 0 :(得分:9)
Laravel 预编译基本上每个请求都使用的某些类。这有助于性能优化。要编译的文件可以在config/compile.php
下的files
中指定。 default one看起来像这样:
'files' => [
realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'),
realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'),
],
在未启用调试时(或使用php artisan optimize
选项)运行--force
时,列出的文件和其他框架类将写入storage/framework/compiled.php
。
这意味着如果您更改其中一个预编译文件,则不会立即应用更改(如果存在compiled.php
)但仅在您再次运行php artisan optimize
或运行php artisan clear-compiled
之后清除compiled.php
文件。
当然,您也可以从列表中删除AppServiceProvider
作为替代解决方案。