サイトを更新しています。 数日間、レイアウトや翻訳に不具合が出ることがあります。ドキュメントは引き続きご利用いただけます。表示が崩れている場合は、後ほど再読み込みしてください。

ホーム Laravel 10.x コントリビューションガイド

コントリビューションガイド

10.x 2026年3月7日

#バグ報告

積極的なコラボレーションを促進するため、Laravelでは単なるバグ報告だけでなくプルリクエストを強く推奨しています。プルリクエストは「レビュー準備完了」とマークされている場合(「ドラフト」状態ではない)かつ新機能のすべてのテストが通っている場合にのみレビューされます。ドラフト状態のまま放置された非アクティブなプルリクエストは数日後にクローズされます。

バグ報告を行う場合は、タイトルと問題の明確な説明を含めてください。また、可能な限り関連情報や問題を再現するコードサンプルも添えてください。バグ報告の目的は、自分自身や他の人がバグを簡単に再現し、修正を進めやすくすることです。

バグ報告は、同じ問題を抱える他の人と協力して解決することを期待して作成されます。バグ報告が自動的に対応される、または他の人がすぐに修正に取り掛かることを期待しないでください。バグ報告は問題解決の第一歩として自分や他の人を助けるものです。協力したい場合は、Laravelのイシュートラッカーにあるバグの修正を手伝うことができます。LaravelのすべてのIssueを見るにはGitHubで認証が必要です。

Laravelを使用中にDocBlock、PHPStan、またはIDEの警告が不適切だと気づいた場合は、GitHub Issueを作成せずに問題を修正するプルリクエストを提出してください。

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

#サポートに関する質問

LaravelのGitHubイシュートラッカーはLaravelのヘルプやサポートを提供する場ではありません。代わりに以下のチャネルを利用してください:

#コア開発の議論

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

バグ、新機能、既存機能の実装に関する非公式な議論は、Laravel Discordサーバー#internalsチャンネルで行われます。LaravelのメンテナであるTaylor Otwellは通常、平日8時から17時(UTC-06:00またはAmerica/Chicago)にこのチャンネルにいますが、それ以外の時間も断続的に参加しています。

#どのブランチ?

すべてのバグ修正は、バグ修正をサポートする最新バージョン(現在は10.x)に送ってください。バグ修正は、今後のリリースにのみ存在する機能を修正する場合を除き、masterブランチに送ってはいけません。

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

メジャーな新機能や破壊的変更を伴う機能は、常に今後のリリースを含むmasterブランチに送ってください。

#コンパイル済みアセット

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

#セキュリティ脆弱性

Laravelのセキュリティ脆弱性を発見した場合は、Taylor Otwell宛にメールでご連絡ください:[email protected]。すべてのセキュリティ脆弱性は迅速に対応されます。

#コーディングスタイル

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

#PHPDoc

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

/**
 * 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])に報告できます:

  • 参加者は異なる意見に寛容であること。
  • 参加者は言葉や行動に個人攻撃や中傷的な発言がないようにすること。
  • 他者の言動を解釈する際は常に善意を前提とすること。
  • 合理的に嫌がらせとみなされる行為は許容されないこと。