命令優(yōu)化
本文的目的是來(lái)弄清楚一些優(yōu)化命令在 Laravel 5.1 和之前版本之間的差別. 在 15年6月發(fā)布的 Laravel 5.1版本中, 命令和他們的邏輯方法被清理掉, 本文章就是描述這些不同.
Laravel 5 在優(yōu)化框架性能的時(shí)候提供了一系列的命令, 這篇文章接卸這些命令做什么并且把緩存文件放到了什么位置.
php artisan optimize
php artisan config:cache
php artisan route:cache
優(yōu)化文件的存儲(chǔ)路徑
優(yōu)化命令生成的文件放置在 bootstrap/cache/目錄下
artisan optimize
php artisan optimize 創(chuàng)建了一個(gè)調(diào)用文件來(lái)為了避免每次請(qǐng)求的時(shí)候把一系列的文件都加載進(jìn)來(lái). 這個(gè)文件存儲(chǔ)在bootstrap/cache/compiled.php.
你可以在 config/compile.php 文件中指定需要額外加載的類(lèi).
這個(gè)編譯文件僅僅在 環(huán)境是 production (開(kāi)發(fā)環(huán)境) 的時(shí)候才生成, 除非使用 --force 參數(shù)
artisan optimize 同時(shí)也創(chuàng)建了bootstrap/cache/services.json , 用來(lái)優(yōu)化服務(wù)加載器的性能. 這個(gè)命令不再編譯視圖文件.
(The command does no longer compile views.)
php artisan clear-compiled 刪除bootstrap/cache/compiled.php 和bootstrap/cache/services.json.
artisan optimize的輸出基于你的配置文件, 例如config/app.php的providers數(shù)組, 在部署模式下, 這個(gè)命令需要在php artisan config:cache之后執(zhí)行
artisan config:cache
php artisan config:cache 這個(gè)把所有的配置文件打包到一個(gè)文件 bootstrap/cache/config.php 中, 這樣避免了配置文件加載多次. 這個(gè)命令在生成新的配置文件前會(huì)清理掉舊的配置文件.
php artisan config:clear 用來(lái)逆向這個(gè)過(guò)程, 來(lái)刪除bootstrap/cache/config.php這個(gè)文件.
artisan route:cache
php artisan route:cache 建立一個(gè)路由緩存文件來(lái)加速路由解析. 這個(gè)命令會(huì)首先清理舊的緩存文件.
php artisan route:clear 刪除路由緩存
artisan view:clear
Laravel 會(huì)在第一次運(yùn)行框架的時(shí)候編譯所有的視圖文件. 編譯的文件根據(jù)路徑的 md5 來(lái)計(jì)算新文件的路徑 MD5 sum of its path (不是內(nèi)容, 是路徑).
artisan view:clear 清理 所有在 storage/framework/views/ 下的文件.
Laravel 5.0
在 5.1 之前, 優(yōu)化文件默認(rèn)生成在 vendor/ 目錄下. 如果vendor 目錄不可寫(xiě), 文件會(huì)被寫(xiě)入到 storage/framework/目錄下, 在 v5.0.20 你可以設(shè)置 storage/framework/作為默認(rèn)的優(yōu)化文件的存儲(chǔ)路徑. 方法是 在 bootstrap/app.php 文件中加入下邊這一行:
$app->useStoragePathForOptimizations(true);
Laravel 5.1 會(huì)用一個(gè)指定的目錄bootstrap/cache來(lái)保存 生成的編譯文件. 這包括 , bootstrap/cache, compiled.php, routes.php, config.php, 和services.json.
1. 取消 Inspiring 加載
來(lái)這里看看 Inspiring 能做什么
Inspiring 是 l5 默認(rèn)帶的一個(gè)獲取心靈雞湯顯示的一個(gè)示例. 不需要雞湯則優(yōu)化掉
'aliases' => [
...
'Inspiring' => 'Illuminate\Foundation\Inspiring',
...
]
... 持續(xù)更新