所有 Laravel 框架的配置文件都放置在 config
目錄下。 每個選項都有說明,因此你可以輕松地瀏覽這些文檔,并且熟悉這些選項配置。
在安裝 Laravel 后,你可以「命名」你的應(yīng)用程序。默認(rèn)情況下,app
的目錄是在 App
的命名空間 下,通過 Composer 使用 PSR-4 自動載入規(guī)范 自動加載。不過,你可以輕松地通過 Artisan 命令 app:name
來修改命名空間,以配合你的應(yīng)用程序名稱。
舉例來說,假設(shè)你的應(yīng)用程序叫做「 Horsefly 」,你可以從安裝的根目錄執(zhí)行下面的命令:
php artisan app:name Horsefly
重命名你的應(yīng)用程序是完全可選的,你也可以保留原有的命名空間 App
。
Laravel 幾乎不需配置就可以馬上使用。你可以自由的開始開發(fā)!然而,你可以瀏覽 config/app.php
文件和其他的文檔。你可能希望依據(jù)你的本機而做更改,文件包含數(shù)個選項如時區(qū)
和語言環(huán)境
。
一旦 Laravel 安裝完成,你應(yīng)該同時 配置本機環(huán)境。
注意: 你不應(yīng)該在正式環(huán)境中將
app.debug
配置為true
。絕對!千萬不要!
Laravel 框架某些目錄需要額外權(quán)限:storage
以及 vendor
目錄必須讓服務(wù)器有寫入權(quán)限。
你可以很輕松的使用 Config
facade 取得你的配置值:
$value = Config::get('app.timezone');Config::set('app.timezone', 'America/Chicago');
你也可以使用 config
輔助方法:
$value = config('app.timezone');
通常應(yīng)用程序常常需要根據(jù)不同的執(zhí)行環(huán)境而有不同的配置值。例如,你會希望在你的本機開發(fā)環(huán)境上會有與正式環(huán)境不同的緩存驅(qū)動(cache driver),通過配置文件,就可以輕松完成。
Laravel 通過 DotEnv Vance Lucas 寫的一個 PHP 類庫。 在全新安裝好的 Laravel 里,你的應(yīng)用程序的根目錄下會包含一個 .env.example
文件。如果你通過 Composer 安裝 Laravel,這個文件將自動被命名為 .env
,不然你應(yīng)該手動更改文件名。
當(dāng)你的應(yīng)用程序收到請求,這個文件所有的變量會被加載到 $_ENV
這個 PHP 超級全局變量里。你可以使用輔助方法 env
查看這些變量。事實上,如果你查看過 Laravel 配置文件,你會注意到幾個選項已經(jīng)在使用這個輔助方法!
根據(jù)你的本機服務(wù)器或者線上環(huán)境需求,你可以自由的修改你的環(huán)境變量。然而, 你的 .env
文件不應(yīng)該被提交到應(yīng)用程序的版本控制系統(tǒng),因為每個開發(fā)人員或服務(wù)器使用你的應(yīng)用程序可能需要不同的環(huán)境配置。
如果你是一個團隊的開發(fā)者,不妨將 .env.example
文件包含到你的應(yīng)用程序。通過例子配置文件里的預(yù)留值,你的團隊中其他開發(fā)人員可以清楚地看到執(zhí)行你的應(yīng)用程序所需的哪些環(huán)境變量。
你可以通過 Application
實例中的 environment
方法取得目前應(yīng)用程序的環(huán)境:
$environment = $app->environment();
你也可以傳遞參數(shù)至 environment
方法中,來確認(rèn)目前的環(huán)境是否與參數(shù)相符合:
if ($app->environment('local')){ // The environment is local}if ($app->environment('local', 'staging')){ // The environment is either local OR staging...}
如果想取得應(yīng)用程序的實例,可以通過服務(wù)容器的 Illuminate\Contracts\Foundation\Application
contract 來取得。當(dāng)然,如果你想在服務(wù)提供者中使用,應(yīng)用程序?qū)嵗梢酝ㄟ^實例變量 $this->app
取得。
也能通過 App
facade 或者輔助方法 app
取得應(yīng)用程序?qū)嵗?/p>
$environment = app()->environment();$environment = App::environment();
為了讓你的的應(yīng)用程序提升一些速度,你可以使用 Artisan 命令 config:cache
將所有的配置文件緩存到單一文件。通過命令會將所有的配置選項合并成一個文件,讓框架能夠快速加載。
通常來說,你應(yīng)該將執(zhí)行 config:cache
命令作為部署工作的一部分。
當(dāng)你的應(yīng)用程序處于維護模式時,所有的路由都會指向一個自定的視圖。當(dāng)你要更新或維護網(wǎng)站時,「關(guān)閉」整個網(wǎng)站是很簡單的。維護模式會檢查包含在應(yīng)用程序的默認(rèn)中間件堆棧。如果應(yīng)用程序處于維護模式,HttpException
會拋出 503 的狀態(tài)碼。
啟用維護模式,只需要執(zhí)行 Artisan 命令 down
:
php artisan down
關(guān)閉維護模式,請使用 Artisan 命令 up
:
php artisan up
維護模式響應(yīng)的默認(rèn)模板放在 resources/views/errors/503.blade.php
。
當(dāng)應(yīng)用程序處于維護模式中,將不會處理任何隊列工作。所有的隊列工作將會在應(yīng)用程序離開維護模式后繼續(xù)被進行。
Laravel 框架通過 public/.htaccess
文件來讓網(wǎng)址中不需要 index.php
。如果你的服務(wù)器是使用 Apache ,請確認(rèn)是否有開啟 mod_rewrite
模塊。
假設(shè) Laravel 附帶的 .htaccess
文件在 Apache 無法生效的話,請嘗試下面的方法:
Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
If your web host doesn't allow the FollowSymlinks
option, try replacing it with Options +SymLinksIfOwnerMatch
.
若使用 Nginx ,可以在你的網(wǎng)站配置中增加下面的配置,以開啟「優(yōu)雅鏈接」:
location / { try_files $uri $uri/ /index.php?$query_string;}
當(dāng)然,如果你使用 Homestead 的話,優(yōu)雅鏈接會自動的幫你配置完成。
更多建議: