Lumen 安裝&配置

2021-09-15 14:39 更新

1、安裝

1.1 服務(wù)器要求

Lumen框架有少許的服務(wù)器要求,當(dāng)然,Laravel Homestead虛擬機(jī)滿足所有這些要求:

  • PHP >= 5.5.9
  • OpenSSL PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension

1.2 安裝Lumen

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

2、配置

2.1 基本配置

和完整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美化。

2.2 環(huán)境配置

基于應(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();

2.3 訪問配置值

你可以使用全局的幫助函數(shù)config來訪問配置值,配置值可以通過”.”來分隔配置文件和配置選項,如果配置選項不存在的話則會返回默認(rèn)值:

$value = config('app.timezone');

如果要在運行時設(shè)置配置值,傳遞一個數(shù)組到config幫助函數(shù):

config(['app.timezone' => 'America/Chicago']);
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號