イントロダクション

Laravelはオープンソースプロジェクトですから、誰でもLaravelを向上させるために貢献できます。スキルのレベルや性別、人種、宗教、国籍に拘わらず、皆さんの貢献を歓迎します。活気に満ちた、様々なコミュニティーを持っていることが、このフレームワークの芯となる、価値の一つなのです!

みなさんの貢献を有効的に活かすため、現在Laravelではバグレポートではなく、プルリクエストだけを受け付けています。「バグレポート」はプルリクエストに含めた、失敗するユニットテストの形式で報告してください。もしくは、Laravelのサンドボックスアプリケーションの中で、そのバグをデモンストレーションし、Laravelのメインrepositoryにそれをプルリクエストとして送信します。失敗するユニットテストやサンドボックスアプリケーションは、バグが存在することを開発チームに示す証拠となりますし、そのバグを処理した後で修正できたことを示す確かな印として役立ちます。

LaravelのソースコードはGitHubで管理され、各Laravelプロジェクトのリポジトリーが存在しています。

コア開発の議論

バグ、新機能、既存機能の実装についての議論は、Freenodeの#laravel-dev IRCチャンネルで行っています。LaravelのメンテナーであるTaylor Otwellは、通常ウイークエンドの午前8時から5時まで(America/Chicago標準時、UTC-6:00)接続しています。他の時間帯は、時々接続しています。

#laravel-dev IRCチャンネルは、全ての人に開放しています。議論に参加しても、もしくはただ見ているだけでもかまいませんので、皆さんこのチャンネルへどうぞ参加してください!

新機能

新機能のプルリクエストを送る前に、どうぞFreenodeの#laravel-dev IRCチャンネルでTaylor Otwellとコンタクトを取ってください。その機能がフレームワークとピッタリであれば、プルリクエストをお送りください。もし採用されなかった場合でも、諦めてはいけません!その機能をパッケージにし、Packagistを使い世界中に対しリリースすることが可能です。

新しい機能を追加する場合、ユニットテストを追加するのを忘れないでください!ユニットテストは、追加されるその新しい機能が安定しており、信頼に足るものであることを確実にしてくれます。

バグ

ユニットテストによる報告

Laravelの開発チームと事前の議論を行わなくても、バグに対するプルリクエストは送っていただいてかまいません。バグフィックを送信する場合、そのバグが再現しないことを確実に示すユニットテストを含めてください!

フレームワークにバグがあることを確信できているが、どうやって修正するのかが不確かな場合は、失敗するユニットテストを含めたプルリクエストを送ってください。失敗するユニットテストは、バグが存在することを開発チームに示す証拠となりますし、そのバグを処理した後で修正できたことを示す確かな印として役立ちます。

そのバグに対し、失敗するユニットテストをどのように書けばよいのかわからない場合は、フレームワークに含まれている他のユニットテストを参考にしてください。それでも迷っていたら、Freenodeの#laravel IRCチャネルで尋ねることもできます。

どのブランチ?

注意: このセクションはLiferaftアプリケーションではなく、主にlaravel/frameworkリポジトリーへプルリクエストを送る場合に適用される内容です。

全てのバグフィックスは、最新の安定ブランチに送ってください。次のリリースの中にだけ存在している機能に対する修正でない限り、決してバグフィックスをmasterブランチに送ってはいけません。

現在のLaravelリリースと完全に後方コンパティビリティを持っているマイナーな機能は、最新の安定ブランチへ送ってください。

次のLaravelリリースに含めるべき、メジャーな新機能は、常にmasterブランチへ送ってください。

もし、あなたの新機能がメジャーなのか、マイナーなのかはっきりしなければ、Freenodeの#laravel-dev IRCチャネルでTaylor Otwellに尋ねてください。

セキュリティ脆弱性

Laravelにセキュリティー脆弱性を見つけたときは、メールでTaylor Otwell(taylorotwell@gmail.com)に連絡してください。セキュリティー脆弱性は急いで対応されるでしょう。

コーディングスタイル

Laravelは、PSR-0PSR-1のコーディング規約に従っています。これらの標準以外に従うべき追加の規約です。

  • クラス名前空間の定義は、<?phpと同じ行で行う。
  • クラス開始の{は、クラス名と同じ行に書く。
  • 関数や制御構造は、オールマンスタイルの字下げを行う。
  • 字下げ(indent)はタブで、字揃え(align)は空白で。