贡献指南


Bug报告

为了鼓励积极协作,Laravel 强烈鼓励使用 Pull Request(PR),而不仅仅是 Bug 报告。只有在标记为“准备好审核”(不在“草稿”状态)且所有新功能的测试都通过时,PR 才会被审核。长时间处于“草稿”状态的悬挂、非活跃的 PR 将在几天后关闭。

但是,如果您提交了一个 Bug 报告,您的问题应该包含一个标题和清晰的问题描述。您还应该包括尽可能多的相关信息和演示问题的代码示例。Bug 报告的目的是使您自己 - 和其他人 - 能够复制 Bug 并开发解决方案。

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

Laravel 的源代码托管在 GitHub 上,每个 Laravel 项目都有一个仓库:

支持问题

Laravel 的 GitHub 问题跟踪器不适用于提供 Laravel 帮助或支持。请使用以下渠道之一:

核心开发讨论

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

关于错误、新功能和现有功能的实现的非正式讨论在 Laravel Discord 服务器的 #internals 频道进行。Laravel 的维护者 Taylor Otwell 通常在周一至周五上午8点至下午5点(UTC-06:00或美国/芝加哥)在频道中出现,并在其他时间不定期出现。

哪个分支?

所有的 Bug 修复应该发送到支持 Bug 修复的最新版本(目前是 10.x)。Bug 修复不应该发送到主分支,除非它们仅修复即将发布的版本中存在的功能。

完全向后兼容当前版本的小型功能可以发送到最新的稳定分支(目前是 10.x)。

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

编译后的资源

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

安全漏洞

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

编码风格

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

PHPDoc

是一种在 PHP 代码中使用文档块注释的方式,它可以让开发者快速了解代码中的类、方法、属性等信息。下面是一个有效的 Laravel 文档块注释的示例。注意,@param 属性后面跟着两个空格、参数类型、两个空格,最后是变量名:

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

如果使用了 PHP 本地类型,则可以删除 @param@return 属性:

/**
 * Execute the job.
 */
public function handle(AudioProcessor $processor): void
{
    //
}

然而,当使用的本地类型是泛型时,请通过使用 @param@return 属性指定泛型类型:

/**
 * Get the attachments for the message.
 *
 * @return array<int, \Illuminate\Mail\Mailables\Attachment>
 */
public function attachments(): array
{
    return [
        Attachment::fromStorage('/path/to/file'),
    ];
}

StyleCI

StyleCI 是一个自动化的代码风格工具,它会在拉取请求合并后自动合并代码格式修复。这样我们就可以将重点放在贡献内容上,而不是代码风格上。

Laravel 的行为准则

来源于Ruby的行为准则。如果有任何违反准则的行为,请向Taylor Otwell(taylor@laravel.com)报告:

  • 参与者应容忍不同的观点。
  • 参与者必须确保他们的语言和行为不包含个人攻击和诋毁个人的言辞。
  • 在解释其他人的言论和行为时,参与者应始终假设他们的意图是善意的。
  • 任何可能被合理认为是骚扰的行为都将不被容忍。

点赞 取消点赞 收藏 取消收藏

<< 上一篇: 升级指南

>> 下一篇: 安装