[ Laravel 5.3 文档 ] 序言 —— 贡献代码

1、缺陷报告

为了鼓励促进更加有效积极的合作,Laravel 强烈鼓励使用 GitHub 的 pull requests,而不是仅仅报告缺陷,“缺陷报告”也可以通过一个包含失败测试的 pull requests 的方式提交。

然而,如果你以文件的方式提交缺陷报告,你的问题应该包含一个标题和对该问题的明确说明,还要包含尽可能多的相关信息以及论证该问题的代码样板,缺陷报告的目的是为了让你自己和其他人更方便的重现缺陷并对其进行修复。

记住,缺陷报告被创建是为了其他人遇到同样问题的时候能够和你一起合作解决它,不要寄期望于缺陷会自动解决抑或有人跳出来修复它,创建缺陷报告是为了帮你自己和别人走上修复问题之路。

Laravel 源码通过 Github 进行管理,每一个 Laravel 项目都有其对应的代码库:

2、核心开发讨论

你可以在issue board上提议新功能或者优化已有功能,如果是新功能的话请至少实现部分代码以便完成新功能开发。

你也可以在 LaraChat 的 Slack 小组的 #internals 频道讨论关于 Laravel 的 bugs、新特性、以及如何实现已有特性等。Taylor Otwell,Laravel 的主要维护者,通常在工作日的上午8点到下午5点(西六区或美国芝加哥时间)在线,其它时间也可能偶尔在线。

3、哪个分支?

所有的 bug 修复应该被提交到最新的稳定分支,永远不要把 bug 修复提交到 master 分支,除非它们能够修复下个发行版本中的特性。

当前版本中完全向后兼容的次要特性也可以提交到最新的稳定分支。

重要的新特性总是要被提交到 master 分支,包括下个发行版本。

如果你不确定是重要特性还是次要特性,请在 Slack 小组LaraChat#internals频道咨询 Taylor Otwell

4、安全漏洞

如果你在 Laravel 中发现安全漏洞,请发送邮件到 taylor@laravel.com,所有的安全漏洞将会被及时解决。

5、编码风格

Laravel遵循 PSR-2 编码标准和 PSR-4 自动载入标准。

PHPDoc

下面是一个有效的Laravel文档区块示例,注意到@param属性前面有两个空格,参数类型前有两个空格,最后是参数名称,也有两个空格:

/**
 * Register a binding with the container.
 *
 * @param string|array $abstract
 * @param \Closure|string|null $concrete
 * @param bool $shared
 * @return void
 */
public function bind($abstract, $concrete = null, $shared = false)
{
    //
}

StyleCI

如果你的代码格式不是很完美,不必担心,StyleCI会在提交代码时自动为我们修正代码风格以保持和Laravel仓库代码一致,从而让我们更加专注于代码内容而非风格。

学院君

学院君 has written 554 articles

资深PHP工程师,Laravel学院院长