生产环境下的 Laravel 调优: 减少 providers 的加载
说明
生产环境下, 可以去除一些不必要的 providers
来减小框架的加载负担.
关闭 Workbench
生产环境下, Workbench 几乎是用不到的, 可以使用以下方法进行关闭:
- 把
'Illuminate\Workbench\WorkbenchServiceProvider'
从app/config/app.php
文件providers
数组里面移除; - 删除
bootstrap/autoload.php
文件里面对Workbench
的加载代码;
参照这个 Commit.
命令行的 providers
按需加载
命令行相关的 providers
只需要在快用到的时候再进行加载, 下面是处理的方法:
1.编辑 app/global/artisan.php.
文件, 如下:
<?php
$provides = array(
'Illuminate\Foundation\Providers\CommandCreatorServiceProvider',
'Illuminate\Session\CommandsServiceProvider',
'Illuminate\Foundation\Providers\ComposerServiceProvider',
'Illuminate\Foundation\Providers\KeyGeneratorServiceProvider',
'Illuminate\Foundation\Providers\MaintenanceServiceProvider',
'Illuminate\Foundation\Providers\OptimizeServiceProvider',
'Illuminate\Foundation\Providers\RouteListServiceProvider',
'Illuminate\Foundation\Providers\ServerServiceProvider',
'Illuminate\Foundation\Providers\TinkerServiceProvider',
);
foreach ($provides as $provide)
{
App::register($provide);
}
2.从 app/config/app.php
里移除多余的 provides
;
参见这个 Commit
还有什么可以优化?
如果你的应用里面没有使用到发送 Email 功能的话, 可以移除 Illuminate\Mail\MailServiceProvider
, 或者不需要使用到队列, 可以移除 Illuminate\Queue\QueueServiceProvider
.
推荐文章: