Skip to content

贡献指南

错误报告

为了鼓励积极的合作,Laravel 强烈鼓励提交拉取请求,而不仅仅是错误报告。拉取请求只有在标记为“准备好审查”(而不是“草稿”状态)并且所有新功能的测试都通过时才会被审查。长时间未活动的草稿状态拉取请求将在几天后关闭。

然而,如果您提交错误报告,您的问题应包含标题和清晰的问题描述。您还应包括尽可能多的相关信息和演示问题的代码示例。错误报告的目标是使您自己和其他人能够轻松复制错误并开发修复。

请记住,错误报告的创建是希望其他有相同问题的人能够与您合作解决它。不要期望错误报告会自动获得任何活动或其他人会迅速修复它。创建错误报告是为了帮助您自己和其他人开始解决问题的过程。如果您想参与,您可以通过修复我们的问题跟踪器中列出的任何错误来提供帮助。您必须使用 GitHub 进行身份验证才能查看 Laravel 的所有问题。

Laravel 源代码在 GitHub 上管理,每个 Laravel 项目都有自己的代码库:

支持问题

Laravel 的 GitHub 问题跟踪器并不打算提供 Laravel 帮助或支持。相反,请使用以下渠道之一:

核心开发讨论

您可以在 Laravel 框架代码库的 GitHub 讨论板 中提出新功能或现有 Laravel 行为的改进。如果您提出新功能,请愿意实现完成该功能所需的一些代码。

关于错误、新功能和现有功能实现的非正式讨论在 Laravel Discord 服务器#internals 频道进行。Laravel 的维护者 Taylor Otwell 通常在工作日的 8am-5pm(UTC-06:00 或 America/Chicago)在频道中出现,并且在其他时间偶尔出现。

哪个分支?

所有 错误修复应发送到支持错误修复的最新版本(当前为 9.x)。错误修复绝不应发送到 master 分支,除非它们修复仅在即将发布的版本中存在的功能。

小型 功能如果完全向后兼容当前版本,可以发送到最新的稳定分支(当前为 9.x)。

重大 新功能或具有破坏性更改的功能应始终发送到 master 分支,该分支包含即将发布的版本。

编译资产

如果您提交的更改将影响编译文件,例如 laravel/laravel 存储库中大多数文件的 resources/cssresources/js,请不要提交编译文件。由于其大尺寸,维护者无法实际审查它们。这可能被利用为向 Laravel 注入恶意代码的一种方式。为了防御性地防止这种情况,所有编译文件将由 Laravel 维护者生成并提交。

安全漏洞

如果您发现 Laravel 中的安全漏洞,请发送电子邮件至 Taylor Otwell,邮箱地址为 taylor@laravel.com。所有安全漏洞将得到及时处理。

编码风格

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

PHPDoc

以下是有效的 Laravel 文档块的示例。请注意,@param 属性后面跟着两个空格,参数类型,再两个空格,最后是变量名:

php
/**
 * 在容器中注册绑定。
 *
 * @param  string|array  $abstract
 * @param  \Closure|string|null  $concrete
 * @param  bool  $shared
 * @return void
 *
 * @throws \Exception
 */
public function bind($abstract, $concrete = null, $shared = false)
{
    //
}

StyleCI

如果您的代码风格不完美,请不要担心!StyleCI 将在拉取请求合并后自动将任何样式修复合并到 Laravel 存储库中。这使我们能够专注于贡献的内容,而不是代码风格。

行为准则

Laravel 的行为准则源自 Ruby 的行为准则。任何违反行为准则的行为都可以报告给 Taylor Otwell(taylor@laravel.com):

  • 参与者将容忍对立的观点。
  • 参与者必须确保他们的语言和行为没有人身攻击和贬损个人的言论。
  • 在解释他人的言语和行为时,参与者应始终假设良好的意图。
  • 可以合理认为是骚扰的行为将不被容忍。