バグ報告

アクティブなコラボレーションを促進するために、Laravelはバグ報告だけでなくプルリクエストを強く推奨しています。プルリクエストは「レビューの準備ができました」とマークされている場合(「ドラフト」状態ではない)にのみレビューされ、新機能のすべてのテストが合格している必要があります。「ドラフト」状態で放置された非アクティブなプルリクエストは、数日後に閉じられます。

ただし、バグ報告を提出する場合は、問題のタイトルと明確な説明を含める必要があります。また、関連する情報をできるだけ多く含め、問題を示すコードサンプルも提供してください。バグ報告の目的は、自分自身と他の人がバグを再現し、修正を開発しやすくすることです。

バグ報告は、同じ問題を抱える他の人があなたと協力して解決できることを期待して作成されます。バグ報告が自動的に活動を見たり、他の人が修正に飛びつくことを期待しないでください。バグ報告を作成することは、自分自身と他の人が問題を修正する道を始める手助けをするためのものです。貢献したい場合は、私たちの問題トラッカーにリストされているバグを修正することで手助けできます。Laravelのすべての問題を見るには、GitHubで認証されている必要があります。

Laravelを使用している際に不適切なDocBlock、PHPStan、またはIDEの警告に気付いた場合は、GitHubの問題を作成しないでください。代わりに、問題を修正するためのプルリクエストを提出してください。

LaravelのソースコードはGitHubで管理されており、各Laravelプロジェクトのリポジトリがあります:

サポート質問

LaravelのGitHub問題トラッカーは、Laravelのヘルプやサポートを提供することを目的としていません。代わりに、次のいずれかのチャネルを使用してください:

コア開発の議論

LaravelフレームワークリポジトリのGitHubディスカッションボードで、新機能や既存のLaravelの動作の改善を提案できます。新機能を提案する場合は、その機能を完成させるために必要なコードの一部を実装する意欲を持ってください。

バグ、新機能、既存機能の実装に関する非公式な議論は、Laravel Discordサーバー#internalsチャネルで行われます。Laravelのメンテナーであるテイラー・オトウェルは、通常、平日の午前8時から午後5時(UTC-06:00またはAmerica/Chicago)にチャネルに出席しており、他の時間帯にも不定期に出席しています。

どのブランチ?

すべてのバグ修正は、バグ修正をサポートする最新バージョン(現在は11.x)に送信する必要があります。バグ修正は、masterブランチに送信されるべきではなく、次回のリリースにのみ存在する機能を修正する場合を除きます。

マイナーな機能は、現在のリリースと完全に後方互換性がある場合、最新の安定ブランチ(現在は11.x)に送信できます。

メジャーな新機能や破壊的変更を伴う機能は、常に次回のリリースを含むmasterブランチに送信する必要があります。

コンパイル済みアセット

コンパイルされたファイルに影響を与える変更を提出する場合、resources/cssまたはresources/jslaravel/laravelリポジトリのほとんどのファイルのように、コンパイル済みファイルをコミットしないでください。その大きなサイズのため、メンテナーによって現実的にレビューされることはできません。これは、Laravelに悪意のあるコードを注入する手段として悪用される可能性があります。これを防ぐために、すべてのコンパイル済みファイルはLaravelのメンテナーによって生成され、コミットされます。

セキュリティ脆弱性

Laravel内でセキュリティ脆弱性を発見した場合は、テイラー・オトウェルにメールを送信してください。
<メールアドレス>
。すべてのセキュリティ脆弱性は迅速に対処されます。

コーディングスタイル

LaravelはPSR-2コーディング標準とPSR-4オートローディング標準に従っています。

PHPDoc

以下は、有効なLaravelドキュメントブロックの例です。@param属性の後には2つのスペース、引数の型、さらに2つのスペース、最後に変数名が続きます:

  1. /**
  2. * Register a binding with the container.
  3. *
  4. * @param string|array $abstract
  5. * @param \Closure|string|null $concrete
  6. * @param bool $shared
  7. * @return void
  8. *
  9. * @throws \Exception
  10. */
  11. public function bind($abstract, $concrete = null, $shared = false)
  12. {
  13. // ...
  14. }
  1. ``````php
  2. /**
  3. * Execute the job.
  4. */
  5. public function handle(AudioProcessor $processor): void
  6. {
  7. //
  8. }
  9. `

ただし、ネイティブ型がジェネリックである場合は、@paramまたは@return属性を使用してジェネリック型を指定してください:

  1. /**
  2. * Get the attachments for the message.
  3. *
  4. * @return array<int, \Illuminate\Mail\Mailables\Attachment>
  5. */
  6. public function attachments(): array
  7. {
  8. return [
  9. Attachment::fromStorage('/path/to/file'),
  10. ];
  11. }

StyleCI

コードスタイルが完璧でなくても心配しないでください!StyleCIは、プルリクエストがマージされた後に自動的にスタイル修正をLaravelリポジトリにマージします。これにより、私たちは貢献の内容に集中し、コードスタイルに気を取られずに済みます。

行動規範

Laravelの行動規範は、Rubyの行動規範に基づいています。行動規範の違反は、テイラー・オトウェルに報告できます(
<メールアドレス>

  • 参加者は反対意見に寛容でなければなりません。
  • 参加者は、自分の言葉や行動が個人的な攻撃や侮辱的な発言から自由であることを確認しなければなりません。
  • 他者の言葉や行動を解釈する際、参加者は常に善意を前提とするべきです。
  • ハラスメントと合理的に見なされる行動は許容されません。