生产环境下的 Laravel 调优: 减少 providers 的加载

说明

此文章翻译自: Crunching Laravel 4 for Production Server

生产环境下, 可以去除一些不必要的 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.

摈弃世俗浮躁,追求技术精湛
Summer
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!