贡献导引
贡献导引
Bug 报告
为了鼓励活跃的协作,Laravel 强烈推荐拉取请求,而不仅仅是 Bug 报告。只有标记为「准备好审查」(而不是「草稿」状态)且新功能的所有测试都通过的拉取请求才会进行审核。长时间处于「草稿」状态的非活跃拉取请求将在几天后被关闭。
不过,如果你提交 Bug 报告,你的问题(issue)应包含标题和清晰的问题描述。你还应尽可能提供相关信息和演示问题的代码示例。Bug 报告的目的是使自己和其他人能够轻松地复制 Bug 并开发修复程序。
请记住,创建 Bug 报告是希望有相同问题的人能够与您协作解决它。不要期望 Bug 报告会自动引发任何进展,或者其他人会迅速修复它。创建 Bug 报告有助于帮助您自己和他人开始修复问题。如果你想参与,你可以通过修复 我们的 issue 跟踪器 列出的任何 Bug 来提供帮助。你必须通过 GitHub 身份验证才能查看 Laravel 的所有 issue。
如果你在使用 Laravel 时注意到不适当的 DocBlock、PHPStan 或 IDE 警告,不要创建 GitHub issue,而是提交拉取请求 ⌈PR⌋ 以解决问题。
Laravel 源码托管在 GitHub 上,每个项目都有对应的仓库:
- Laravel Application
- Laravel Art
- Laravel Documentation
- Laravel Dusk
- Laravel Cashier Stripe
- Laravel Cashier Paddle
- Laravel Echo
- Laravel Envoy
- Laravel Folio
- Laravel Framework
- Laravel Homestead (Build Scripts)
- Laravel Horizon
- Laravel Livewire Starter Kit
- Laravel Passport
- Laravel Pennant
- Laravel Pint
- Laravel Prompts
- Laravel React Starter Kit
- Laravel Reverb
- Laravel Sail
- Laravel Sanctum
- Laravel Scout
- Laravel Socialite
- Laravel Telescope
- Laravel Vue Starter Kit
帮助支持
Laravel 的 GitHub 问题跟踪器不打算提供 Laravel 帮助或支持。相反,请使用以下渠道之一:
核心开发讨论
你可以在 Laravel 框架存储库的 GitHub 讨论区 中提出新功能或对现有 Laravel 行为的改进。如果您提出一项新功能,请愿意实现至少一些完成该功能所需的代码。
关于错误、新功能和现有功能实现的非正式讨论在 Laravel Discord 服务器 的 #internals
频道中进行。Laravel 的维护者 Taylor Otwell 通常在工作日上午 8 点至下午 5 点 ⌈UTC-06:00 或美国/芝加哥⌋ 在频道中出现,并在其他时间偶尔出现在频道中。
哪个分支?
所有 Bug 修复应发送到支持 Bug 修复的最新版本 ⌈当前为 12.x
⌋ 。Bug 修复 永远 不应发送到 master
分支,除非它们修复了仅在即将发布的版本中存在的功能。
次要 功能,如果与当前版本 完全向后兼容 ,可以发送到最新的稳定分支 ⌈当前为 12.x
⌋。
重大 新功能或具有破坏性更改的功能应始终发送到 master
分支,该分支包含即将发布的版本。
编译的资产
如果您提交的更改会影响编译文件,例如 laravel/laravel
存储库中的大多数 resources/css
或 resources/js
文件,请不要提交编译文件。由于它们的大小,维护者无法实际审查它们。这可能被利用为向 Laravel 注入恶意代码的一种方式。为了防止这种情况,所有编译文件将由 Laravel 维护者生成和提交。
安全漏洞
如果您发现 Laravel 中的安全漏洞,请发送电子邮件至 Taylor Otwell taylor@laravel.com。所有安全漏洞将被及时处理。
编码风格
Laravel 遵循 PSR-2 编码标准和 PSR-4 自动加载标准。
PHPDoc
以下是一个有效的 Laravel 文档块示例。请注意, @param
属性后跟两个空格、参数类型、两个空格,最后是变量名:
/**
* 在容器中注册绑定。
*
* @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
属性由于使用本机类型而显得多余时,可以将其删除:
/**
* 执行作业。
*/
public function handle(AudioProcessor $processor): void
{
//
}
但是,当原生类型是泛型时,请通过使用 @param
或 @return
属性指定泛型类型:
/**
* 获取消息
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}
StyleCI
别担心你的代码风格,StyleCI 是一个自动化的代码风格工具,它会在拉取请求合并后自动将任何风格修复合并到 Laravel 仓库中。这使我们能够专注于贡献的内容而不是代码风格上。
Code of Conduct
Laravel 的行为准则源自于 Ruby 的行为准则。如果违反了行为准则,可以向 Taylor Otwell(taylor@laravel.com)报告:
- 参与者应尊重不同的观点。
- 参与者必须确保他们的语言和行为没有人身攻击和贬低个人言论。
- 在解释他人的言行时,参与者应始终保持良好的意图。
- 不能容忍可合理视为骚扰的行为。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: