错误报告

为鼓励积极协作,Laravel 强烈鼓励通过拉取请求来解决问题,而非通过 GitHub Issues。我们大多数第一方包的 GitHub Issues 功能均已禁用。

若你发现问题,请创建一个能解决该问题的拉取请求。你的拉取请求应包含标题,以及对问题及其解决方案的清晰描述。你还应尽可能多地提供相关信息,并附上能复现该问题的代码示例。拉取请求的目标是方便你自身及他人理解问题并验证修复效果。

若你不知道如何修复该问题,可向编程智能体描述该问题,并尝试使用它来创建拉取请求。

只有当拉取请求被标记为“可审查”(非“草稿”状态)且新功能的所有测试均通过时,才会对其进行审查。处于“草稿”状态的闲置、非活跃拉取请求将在几天后被关闭。

Laravel 源代码托管于 GitHub,每个 Laravel 项目均设有对应的代码仓库:

支持咨询

Laravel 的 GitHub Issue 追踪器不用于提供 Laravel 帮助或支持。请改用以下任一渠道:

应提交至哪个分支?

所有错误修复都应提交至支持错误修复的最新版本(当前为 13.x)。错误修复绝不可提交至 master 分支,除非修复的功能仅存在于即将发布的版本中。

与当前版本完全向后兼容的次要功能,可提交至最新稳定分支(当前为 13.x)。

重大新功能或包含破坏性变更的功能,应始终提交至包含即将发布版本的 master 分支。

编译后的资源文件

若你提交的变更会影响编译后的文件(例如 laravel/laravel 仓库中 resources/css 或 resources/js 目录下的大部分文件),请勿提交这些编译后的文件。由于文件体积过大,维护者无法对其进行有效审查。此类文件可能被利用,作为向 Laravel 注入恶意代码的途径。为防范此类风险,所有编译后的文件将由 Laravel 维护者生成并提交。

AI 生成的贡献

我们感谢所有提交至 Laravel 的拉取请求。然而,未经充分人工审查与考量、主要由 AI 生成的重大贡献,是不被接受的。

若你选择使用 AI 工具辅助完成对框架的重大或复杂贡献,所生成的代码必须在提交前由你进行全面审查、测试并充分理解。

拉取请求的描述必须完全由贡献者撰写。使用 AI 生成描述的拉取请求将被关闭。

批量创建 Issue 或完全由 AI 生成的拉取请求,我们将不予容忍。此类拉取请求将在未审查的情况下被关闭,相关贡献用户可能会被禁止访问该仓库。

我们鼓励贡献者熟悉现有代码库、参与社区互动,并提交能够体现自身理解、且经过审慎考量所解决问题的拉取请求。

安全漏洞

若你在 Laravel 中发现安全漏洞,请发送邮件至我们的安全团队:[email protected]。所有安全漏洞都将得到及时处理。

代码风格

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
 *
 * @throws \Exception
 */
public function bind($abstract, $concrete = null, $shared = false)
{
    // ...
}

当因使用原生类型而导致 @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 仓库。这使我们能够专注于贡献的内容,而非代码风格。

行为准则

Laravel 行为准则源自 Ruby 行为准则。任何违反行为准则的行为,均可向 Taylor Otwell([email protected])举报:

  • 参与者应对不同观点持包容态度。
  • 参与者须确保自身语言及行为不含人身攻击和诋毁性的人身言论。
  • 在解读他人的言语和行为时,参与者应始终秉持善意。
  • 可被合理认定为骚扰的行为,一律不予容忍。