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