Lumen框架有少許的服務器要求,當然,Laravel Homestead虛擬機滿足所有這些要求:
Lumen使用Composer來管理依賴,所以,在使用之前,確保你已經在機器上安裝了Composer。
通過Lumen安裝器
首先,使用Composer下載Lumen安裝器:
composer global require "laravel/lumen-installer=~1.0"
確保~/.composer/vendor/bin
在系統(tǒng)路徑PATH中,否則不能在命令行調用lumen
命令。
安裝完成后,只需簡單通過lumen new
命令就可以在當前目錄下創(chuàng)建一個新的Lumen應用,例如,lumen new blog
將會創(chuàng)建一個名為blog
的Lumen安裝目錄,該目錄中已經包含了所有Lumen依賴。該安裝方法比通過Composer安裝要快很多:
lumen new blog
通過Composer安裝
你還可以在終端中通過Composer的create-project
目錄來安裝Lumen:
composer create-project laravel/lumen --prefer-dist
和完整Laravel框架有著多個配置文件不同,Lumen框架的所有配置項都放在單個.env
配置文件中。
應用APP_KEY
安裝完Lumen后,需要設置應用APP_KEY為32位長的隨機字符串,該key被配置在.env
環(huán)境文件中(APP_KEY),如果你還沒有將.env.example
文件重命名為.env
,現(xiàn)在立即這樣做。如果應用key沒有被設置,用戶sessions和其它加密數據將會有安全隱患!
注意:為了讓配置值被加載,你需要取消
bootstrap/app.php
文件中Dotenv::load()
方法前面的注釋。
更多配置
Lumen幾乎不再需要其它任何配置就可以使用了,你可以自由地開始開發(fā)了!
你可能還想要配置Lumen的一些其它組件,比如:
美化URL
框架中自帶的public/.htaccess
文件支持URL中隱藏index.php
,如過你的Lumen應用使用Apache作為服務器,需要先確保Apache啟用了mod_rewrite
模塊以支持.htaccess
解析。
如果Lumen自帶的.htaccess
文件不起作用,試試將其中內容做如下替換:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
在Nginx中,使用如下站點配置指令就可以支持URL美化:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
當然,使用Homestead的話,以上配置已經為你配置好以支持URL美化。
基于應用運行環(huán)境擁有不同配置值能夠給我們開發(fā)帶來極大的方便,比如,我們想在本地和線上環(huán)境配置不同的緩存驅動,在Lumen中這很容易實現(xiàn)。
Lumen使用了Vance Lucas開發(fā)的PHP庫DotEnv來實現(xiàn)這一目的,在新安裝的Lumen中,根目錄下有一個.env.example
文件,如果Lumen是通過Composer安裝的,那么該文件已經被重命名為.env
,否則的話你要自己手動重命名該文件。
在每次應用接受請求時,.env
中列出的所有變量都會被載入到PHP超全局變量$_ENV
中,然后你就可以在應用中通過幫助函數env
來獲取這些變量值。實際上,如果你去查看Lumen的配置文件,就會發(fā)現(xiàn)很多選項已經在使用這些幫助函數了。
你可以盡情的按你所需對本地服務器上的環(huán)境變量進行修改,線上環(huán)境也是一樣。但不要把.env
文件提交到源碼控制(svn或git等)中,因為每個使用你的應用的不同開發(fā)者或服務器可能要求不同的環(huán)境配置。
如果你是在一個團隊中進行開發(fā),你可能需要將.env.example
文件隨你的應用一起提交到源碼控制中,通過將一些配置值以占位符的方式放置在.env.example
文件中,其他開發(fā)者可以很清楚明了的知道運行你的應用需要配置哪些環(huán)境變量。
配置文件
你可以使用Laravel風格的配置文件,這些默認文件存放在vendor/laravel/lumen-framework/config
目錄下,如果你將這些文件拷貝并粘貼到應用根目錄的config
目錄下,Lumen將會使用這些配置文件。
使用完整的配置文件你將能夠對Lumen的配置有著更多的控制權,例如配置多個存儲“硬盤”或者數據庫讀/寫連接。
自定義配置文件
你還可以創(chuàng)建自定義的配置文件并使用$app->configure()
方法來加載它們。例如,如果你的配置文件位于config/options.php
,你可以像這樣加載它:
$app->configure('options');
訪問當前應用環(huán)境
你可以通過App
門面的environment
方法來訪問應用當前環(huán)境:
$environment = App::environment();
你也可以向environment
方法中傳遞參數來判斷當前環(huán)境是否匹配給定值,如果需要的話你甚至可以傳遞多個值:
if (App::environment('local')) {
// The environment is local
}
if (App::environment('local', 'staging')) {
// The environment is either local OR staging...
}
應用實例也可以通過幫助函數app
來訪問:
$environment = app()->environment();
你可以使用全局的幫助函數config
來訪問配置值,配置值可以通過”.”來分隔配置文件和配置選項,如果配置選項不存在的話則會返回默認值:
$value = config('app.timezone');
如果要在運行時設置配置值,傳遞一個數組到config
幫助函數:
config(['app.timezone' => 'America/Chicago']);
更多建議: