# 貢獻指南
- [錯誤反饋](#bug-reports)
- [核心開發討論](#core-development-discussion)
- [選擇分支](#which-branch)
- [安全漏洞](#security-vulnerabilities)
- [代碼風格](#coding-style)
- [PHPDoc](#phpdoc)
- [StyleCI](#styleci)
<a name="bug-reports"></a>
## 錯誤反饋
為了提倡積極協作,Laravel 強烈地鼓勵使用 Pull Request,而不僅僅只是反饋錯誤。「錯誤反饋」可以以一個包含失敗測試的 Pull Request 的形式發送。
假如你提交了錯誤反饋,那么反饋中應該包含著標題和詳盡的問題描述,并盡可能多的提供相關的信息和錯誤問題的代碼示例。錯誤反饋的主要目的是讓自己和其他人可以簡單地重現并修復錯誤。
請記住,錯誤反饋的初衷是讓其它有相同問題的人可以協作解決問題。不要期望反饋錯誤后會很快有人會馬上修復它。創建錯誤反饋主要是為了能幫助你自己和其他人開始著手修復問題。
Laravel 源代碼托管在 GitHub 上面,并且每個 Laravel 的項目都有自己的代碼倉庫:
- [Laravel Framework](https://github.com/laravel/framework)
- [Laravel Application](https://github.com/laravel/laravel)
- [Laravel Documentation](https://github.com/laravel/docs)
- [Laravel Cashier](https://github.com/laravel/cashier)
- [Laravel Cashier for Braintree](https://github.com/laravel/cashier-braintree)
- [Laravel Envoy](https://github.com/laravel/envoy)
- [Laravel Homestead](https://github.com/laravel/homestead)
- [Laravel Homestead Build Scripts](https://github.com/laravel/settler)
- [Laravel Website](https://github.com/laravel/laravel.com)
- [Laravel Art](https://github.com/laravel/art)
<a name="core-development-discussion"></a>
## 核心開發討論
如果你想提出功能建議,或者改進現有的 Laravel 的行為,請到 Laravel Internals 項目的 [反饋欄](https://github.com/laravel/internals/issues) 討論。如果你想提出功能建議,我們希望你愿意為此功能貢獻一些代碼。
有關錯誤、新功能和現有功能的實現討論會在 Slack 的 [LaraChat](http://larachat.co) 群組上的 `#internals` 頻道中進行。Laravel 的維護者 Taylor Otwell 在工作日的 8am 到 5pm( UTC-06:00 或 America/Chicago )通常都會出現在頻道上,其它時間偶爾也會出現。
<a name="which-branch"></a>
## 選擇分支
**所有的** 錯誤修復都應該發送到最新的穩定分支上。除非它們修復的功能只存在下一版的發布中,不然錯誤修復 **永遠不** 應該發送到 `master` 分支。
**次要的** 且與現有的 Laravel 發布版本 **完全向下兼容** 的功能可以發送到最新的穩定分支。
**主要的** 新功能應該都發送到 `master` 分支,它包含下一版的 Laravel 發布內容。
如果不確定你的功能是主要的還是次要的,請在 Slack 的 [LaraChat](http://larachat.co) 群組上的 `#internals` 頻道詢問 Taylor Otwell。
<a name="security-vulnerabilities"></a>
## 安全漏洞
如果你發現 Laravel 存在安全漏洞,請發送電子郵件到 <a href="mailto:taylor@laravel.com">taylor@laravel.com</a> 給 Taylor Otwell。所有的安全漏洞將會及時予以處理。
<a name="coding-style"></a>
## 編碼風格
Laravel 遵守 [PSR-2](https://phphub.org/topics/2079) 編碼規范和 [PSR-4](https://phphub.org/topics/2081) 自動加載規范。
> 譯者注:擴展閱讀 - [所有 PSR 的標準規范](https://psr.phphub.org/)。
<a name="phpdoc"></a>
### 注釋區塊
`@param` 標簽應該分行顯示,并且每一個參數中間需相隔 **兩個空格**,舉個例子:
/**
* 為服務容器注冊一個綁定
*
* @param string|array $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
*/
public function bind($abstract, $concrete = null, $shared = false)
{
//
}
<a name="styleci"></a>
### StyleCI
Laravel 使用 [StyleCI](https://styleci.io/) 來做代碼矯正,所有 PR 都會在合并后被矯正代碼樣式,這樣做允許我們把精力放到貢獻的內容上,而不是代碼風格。
- 說明
- 翻譯說明
- 發行說明
- 升級說明
- 貢獻導引
- 入門指南
- 安裝
- 配置信息
- 文件夾結構
- 錯誤與日志
- 開發環境
- HomeStead
- Valet
- 核心概念
- 服務容器
- 服務提供者
- 門面(facades)
- contracts
- HTTP層
- 路由
- 中間件
- CSRF保護
- 控制器
- 請求
- 響應
- Session
- 表單驗證
- 視圖與模板
- 視圖
- Blade模板
- 本地化
- Javascript與CSS
- 入門指南
- laravel-elixir
- 安全
- 用戶認證
- 用戶授權
- 重置密碼
- API授權
- 加密解密
- 哈希
- 綜合話題
- 廣播系統
- 緩存系統
- 事件系統
- 文件存儲
- 郵件發送
- 消息通知
- 隊列
- 數據庫
- 快速入門
- 查詢構造器
- 分頁
- 數據庫遷移
- 數據填充
- redis
- Eloquent ORM
- 快速入門
- 模型關聯
- Eloquent集合
- 修改器
- 序列化
- Artisan控制臺
- Artisan 命令行
- 任務調度
- 測試
- 快速入門
- 應用程序測試
- 數據庫測試
- 模擬器
- 官方擴展包
- Cashier交易包
- Envoy 部署工具
- Passport OAuth 認證
- Scout 全文搜索
- Socialite 社交化登錄
- 附錄
- 集合
- 輔助函數
- 擴展包開發
- 交流說明