## 簡介
所有 Laravel 框架的配置文件都放置在 `config` 目錄下。 每個選項都有說明,因此你可以輕松地瀏覽這些文檔,并且熟悉這些選項配置。
## 完成安裝后
#### 命名你的應用程序
在安裝 Laravel 后,你可以「命名」你的應用程序。默認情況下,app 的目錄是在 App 的命名空間 下,通過 Composer 使用 PSR-4 自動載入規范 自動加載。不過,你可以輕松地通過 Artisan 命令 `app:name` 來修改命名空間,以配合你的應用程序名稱。
舉例來說,假設你的應用程序叫做「 Horsefly 」,你可以從安裝的根目錄執行下面的命令:
~~~
php artisan app:name Horsefly
~~~
重命名你的應用程序是完全可選的,你也可以保留原有的命名空間 App 。
#### 其他配置
Laravel 幾乎不需配置就可以馬上使用。你可以自由的開始開發!然而,你可以瀏覽 `config/app.php` 文件和其他的文檔。你可能希望依據你的本機而做更改,文件包含數個選項如時區和語言環境。
一旦 Laravel 安裝完成,你應該同時 配置本機環境。
> 注意: 你不應該在正式環境中將 `app.debug` 配置為 `true` 。絕對!千萬不要!
## 權限
Laravel 框架某些目錄需要額外權限:storage 以及 vendor 目錄必須讓服務器有寫入權限。
#### 取得配置值
你可以很輕松的使用 Config facade 取得你的配置值:
~~~
$value = Config::get('app.timezone');
Config::set('app.timezone', 'America/Chicago');
~~~
你也可以使用 config 輔助方法:
~~~
$value = config('app.timezone');
~~~
## 環境配置
通常應用程序常常需要根據不同的執行環境而有不同的配置值。例如,你會希望在你的本機開發環境上會有與正式環境不同的緩存驅動(cache driver),通過配置文件,就可以輕松完成。
Laravel 通過 `DotEnv Vance Lucas` 寫的一個 PHP 類庫。 在全新安裝好的 Laravel 里,你的應用程序的根目錄下會包含一個 `.env.example` 文件。如果你通過 Composer 安裝 Laravel,這個文件將自動被命名為 `.env`,不然你應該手動更改文件名。
當你的應用程序收到請求,這個文件所有的變量會被加載到 `$_ENV` 這個 PHP 超級全局變量里。你可以使用輔助方法 `env` 查看這些變量。事實上,如果你查看過 Laravel 配置文件,你會注意到幾個選項已經在使用這個輔助方法!
根據你的本機服務器或者線上環境需求,你可以自由的修改你的環境變量。然而, 你的 `.env` 文件不應該被提交到應用程序的版本控制系統,因為每個開發人員或服務器使用你的應用程序可能需要不同的環境配置。
如果你是一個團隊的開發者,不妨將 .env.example 文件包含到你的應用程序。通過例子配置文件里的預留值,你的團隊中其他開發人員可以清楚地看到執行你的應用程序所需的哪些環境變量。
## 取得目前應用程序的環境
你可以通過 Application 實例中的 environment 方法取得目前應用程序的環境:
~~~
$environment = $app->environment();
~~~
你也可以傳遞參數至 `environment` 方法中,來確認目前的環境是否與參數相符合:
~~~
if ($app->environment('local'))
{
// The environment is local
}
if ($app->environment('local', 'staging'))
{
// The environment is either local OR staging...
}
~~~
如果想取得應用程序的實例,可以通過服務容器的 `Illuminate\Contracts\Foundation\Application contract` 來取得。當然,如果你想在服務提供者中使用,應用程序實例可以通過實例變量 $this->app 取得。
也能通過 `App facade` 或者輔助方法 app 取得應用程序實例:
~~~
$environment = app()->environment();
$environment = App::environment();
~~~
## 配置緩存
為了讓你的的應用程序提升一些速度,你可以使用 Artisan 命令 config:cache 將所有的配置文件緩存到單一文件。通過命令會將所有的配置選項合并成一個文件,讓框架能夠快速加載。
通常來說,你應該將執行 config:cache 命令作為部署工作的一部分。
## 維護模式
當你的應用程序處于維護模式時,所有的路由都會指向一個自定的視圖。當你要更新或維護網站時,「關閉」整個網站是很簡單的。維護模式會檢查包含在應用程序的默認中間件堆棧。如果應用程序處于維護模式,HttpException 會拋出 503 的狀態碼。
啟用維護模式,只需要執行 Artisan 命令 `down`:
~~~
php artisan down
~~~
關閉維護模式,請使用 Artisan 命令 `up`:
~~~
php artisan up
~~~
## 維護模式的響應模板
維護模式響應的默認模板放在 `resources/views/errors/503.blade.php`。
## 維護模式與隊列
當應用程序處于維護模式中,將不會處理任何隊列工作。所有的隊列工作將會在應用程序離開維護模式后繼續被進行。
## 優雅鏈接
#### Apache
Laravel 框架通過 `public/.htaccess` 文件來讓網址中不需要 index.php。如果你的服務器是使用 Apache ,請確認是否有開啟 `mod_rewrite` 模塊。
假設 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
若使用 Nginx ,可以在你的網站配置中增加下面的配置,以開啟「優雅鏈接」:
~~~
location / {
try_files $uri $uri/ /index.php?$query_string;
}
~~~
當然,如果你使用 Homestead 的話,優雅鏈接會自動的幫你配置完成。
- 前言
- 發行說明/L5新特性
- 升級向導
- 升級到 5.0.16
- 從 4.2 升級到 5.0
- 從 4.1 升級到 4.2
- 從 4.1.x 升級到 4.1.29
- 從 4.1.25 升級到 4.1.26
- 從 4.0 升級到 4.1
- 貢獻向導
- 環境配置
- 安裝
- 配置
- 基本功能
- 路由
- 基本路由
- CSRF 保護
- 方法欺騙
- 路由參數
- 命名路由
- 路由群組
- 路由模型綁定
- 拋出 404 錯誤
- 中間件
- 建立中間件
- 注冊中間件
- 可終止中間件
- 控制器
- 基礎控制器
- 控制器中間件
- 隱式控制器
- RESTful 資源控制器
- 請求
- 取得請求實例
- 取得輸入數據
- 舊輸入數據
- Cookies
- 上傳文件
- 其他的請求信息
- 響應
- 基本響應
- 重定向
- 其他響應
- 響應宏
- 系統架構
- 服務提供者
- 基本提供者例子
- 注冊提供者
- 緩載提供者
- 服務容器
- 基本用法
- 將接口綁定到實現
- 上下文綁定
- 標簽
- 實際應用
- 容器事件
- 參考:理解PHP 依賴注入|Laravel IoC容器
- Contracts
- 為什么用 Contracts
- Contract 參考
- 如何使用 Contracts
- Facades
- 實際用法
- 建立 Facades
- 模擬 Facades
- Facade 類參考
- 請求的生命周期
- 生命周期概要
- 聚焦于服務提供者
- 應用程序結構
- 根目錄
- App 目錄
- 為應用程序配置命名空間
- 系統服務
- 認證
- 用戶認證
- 取得經過認證的用戶
- 保護路由
- HTTP 基本認證
- 忘記密碼與重設
- 第三方登陸認證
- 交易
- 配置文件
- 訂購方案
- 一次性付款
- Single Charges
- 免信用卡試用
- 訂購轉換
- 訂購數量
- 取消訂購
- 恢復訂購
- 確認訂購狀態
- 處理失敗訂閱
- 處理其它 Stripe Webhooks
- 收據
- 緩存
- 配置
- 緩存用法
- 遞增與遞減
- 緩存標簽
- 緩存事件
- 數據庫緩存
- 集合
- Command Bus
- 建立命令
- 調用命令
- 命令隊列
- 命令管道
- 核心擴展
- 管理者和工廠
- 緩存
- Session
- 認證
- 基于服務容器的擴展
- Laravel Elixir
- 安裝與配置
- 使用方式
- Gulp
- Custom Tasks and Extensions
- 加密
- Envoy 任務執行器
- 安裝
- 執行任務
- 多服務器
- 并行執行
- 任務宏
- 通知
- 更新 Envoy
- 錯誤與日志
- 配置
- 錯誤處理
- HTTP 異常
- 日志
- 事件
- 基本用法
- 事件處理隊列
- 事件訂閱者
- 文件系統與云存儲
- 配置文件
- 基本用法
- 自定義文件系統
- 哈希
- 基本用法
- 輔助方法
- 數組
- 路徑
- 路由
- 字符串
- 網址(URL)
- 其他
- 本地化
- 語言文件
- 基本用法
- 復數
- 驗證
- 覆寫擴展包的語言文件
- 郵件
- 配置
- 基本用法
- 內嵌附件
- 郵件隊列
- 郵件與本地端開發
- 擴展包開發
- 視圖
- 語言
- 配置文件
- 公共資源
- 發布分類文件
- 路由
- 分頁
- 配置
- 使用
- 追加分頁鏈接
- 轉換至 JSON
- 隊列
- 設置
- 基本用法
- 隊列閉包
- 執行一個隊列監聽
- 常駐隊列處理器
- 推送隊列
- 已失敗的工作
- 會話
- 配置
- 使用 Session
- 暫存數據(Flash Data)
- 數據庫 Sessions
- Session 驅動
- 模板
- Blade 模板
- Blade 控制語法結構
- Blade 擴展
- 參考:@section與@yield 介紹
- 單元測試
- 定義并執行測試
- 測試環境
- 從測試調用路由
- 模擬 Facades
- 框架 Assertions
- 輔助方法
- 重置應用程序
- 表單驗證
- 基本用法
- 控制器驗證
- 表單請求驗證
- 使用錯誤信息
- 錯誤信息 & 視圖
- 可用驗證規則
- 條件驗證規則
- 自定義錯誤信息
- 自定義驗證規則
- 數據庫
- 使用基礎
- 配置
- 讀取/寫入連接
- 執行查找
- 數據庫事務處理
- 獲取連接
- 日志記錄
- 查詢構造器
- Selects
- Joins
- 高級 Wheres
- 聚合
- 原生表達式
- 添加
- 更新
- 刪除
- Unions
- 悲觀鎖定 (Pessimistic Locking)
- Eloquent ORM
- 基本用法
- 批量賦值
- 新增,更新,刪除
- 軟刪除
- 時間戳
- 范圍查詢
- Global Scopes
- 關聯
- 關聯查詢
- 預載入
- 新增關聯模型
- 更新上層時間戳
- 使用樞紐表
- 集合
- 獲取器和修改器
- 日期轉換器
- 屬性類型轉換
- 模型事件
- 模型觀察者
- 模型 URL 生成
- 轉換成數組 / JSON
- 結構生成器
- 建立與刪除數據表
- 加入字段
- 修改字段
- 修改字段名稱
- 移除字段
- 檢查是否存在
- 加入索引
- 外鍵
- 移除索引
- 移除時間戳記和軟刪除
- 保存引擎
- 遷移和數據填充
- 建立遷移文件
- 執行遷移
- 回滾遷移
- 數據填充
- Redis
- 配置
- 使用方式
- 管道
- 開發包
- Confide 用戶身份認證
- Entrust 權限管理
- Shoppingcart 購物車
- Genertators 代碼生成工具
- IDE Helper IDE助手
- Artisan 命令行工具
- 概覽
- 用法
- 在命令行接口以外的地方調用命令
- 定時調用 Artisan 命令
- 開發
- 建立自定義命令
- 注冊自定義命令