PHP
PHPコアへの貢献
サーチ…
備考
PHPはオープンソースプロジェクトであり、誰もがそれに貢献することができます。概して言えば、PHPコアに貢献するには2つの方法があります:
- バグ修正
- 機能の追加
しかし貢献する前に、バグ修正と機能リクエストが正しいPHPバージョンをターゲットにできるように、PHPバージョンの管理方法とリリース方法を理解することが重要です。開発された変更は、プルリクエストとしてPHP Githubリポジトリに提出することができます 。開発者にとって有益な情報は、PHP.netサイトおよび#externalsフォーラムの「Get Involved」セクションにあります。
バグ修正に貢献する
コアへの貢献を目指す人にとっては、一般的にバグ修正から始める方が簡単です。これは、機能に必要なコアをより複雑に変更しようとする前に、PHPの内部構造に精通するのに役立ちます。
バージョン管理プロセスに関しては、 サポートされている PHPバージョンが残っている間に 、最も影響を受けていないものをバグフィックス対象にする必要があります。バグ修正プルリクエストが対象とするのはこのバージョンです。そこから、内部メンバーは修正を正しいブランチにマージし、それを必要に応じて後のPHPバージョンに上向きにマージすることができます。
バグを解決するためには、 bugs.php.netを参照してください 。
機能追加による貢献
PHPは、新しい機能を導入し、言語に重要な変更を加える際に、RFCプロセスに従います。 RFCは、php.netのメンバーによって投票され、総投票の単純多数決(50%+1)または超大半(2/3 + 1)のいずれかを達成しなければなりません。変更が言語そのもの(新しい構文の導入など)に影響する場合は、大多数が必要です。そうでない場合は、単純過半数のみが必要です。
RFCが投票に入る前に、公式のPHPメーリングリストで少なくとも2週間の議論期間を経なければなりません。この期間が終了し、RFCに未解決の問題がなければ、投票に移すことができます。投票には最低1週間は必要です。
以前に拒否されたRFCを復活させたい場合は、次の2つの状況のいずれかでのみ行うことができます。
- 前回の投票から6ヶ月が経過した
- 著者はRFCを大幅に変更し、RFCを再度投票すると投票の結果に影響を与える可能性があります。
投票特権を持つ人々は、PHP自体に貢献する人(またはPHPのアカウントを持つ人)か、PHPコミュニティの代表者になるでしょう。これらの代表者は、php.netアカウントを持つ人が選んでおり、PHPベースのプロジェクトの主導者または内部の議論への定期的な参加者のいずれかになります。
提案のために新しいアイデアを提出するときは、提案者が少なくとも概念実証パッチを書く必要がほとんどあります。これは、実装がなければ、その提案は近い将来に実現される可能性の低い別の機能要求になります。
このプロセスの徹底した手引きは、公式RFCページの作成方法に記載されています。
リリース
PHPのメジャーバージョンにはリリースサイクルが設定されていないため、内部チームの裁量でリリースされる可能性があります。一方、マイナーバージョンは毎年リリースされています。
PHPのすべてのリリース(メジャー、マイナー、パッチ)の前に、一連のリリース候補(RC)が用意されています。 PHPは他のプロジェクトのようにRCを使用しません(RCに問題がない場合は、それを次の最終リリースにしてください)。代わりに、最終版が作成される前に、典型的には設定された数のRCが決定される形式の最終ベータ版としてそれらを使用します。
バージョン管理
PHPは一般的に可能な限りセマンティックバージョニングに従っています。そのため、言語のマイナーパッチバージョンでは下位互換性(BC)を維持する必要があります。 BCを保持する機能と変更点は、マイナーバージョン(パッチバージョンではありません)を対象にする必要があります。機能や変更がBCを破る可能性を秘めている場合、それらは次の主要なPHPのバージョン(X .yz)の代わりを対象とすることを目指すべきです。
各マイナーPHPのバージョン(X。Y .Z)は、バグ修正のすべてのタイプのために(「アクティブサポート」と呼ばれる)の一般的なサポートの2年を持っています。セキュリティ関連の修正のみが適用されるセキュリティサポートのために、追加の年が追加されています。 3年が過ぎると、そのバージョンのPHPのサポートは完全に廃止されます。 現在サポートされているPHPのバージョンのリストはphp.netにあります。
基本的な開発環境の設定
PHPのソースコードはGitHubでホストされています 。ソースからビルドするには、まずコードの作業コピーをチェックアウトする必要があります。
mkdir /usr/local/src/php-7.0/
cd /usr/local/src/php-7.0/
git clone -b PHP-7.0 https://github.com/php/php-src .
機能を追加する場合は、独自のブランチを作成することをお勧めします。
git checkout -b my_private_branch
最後に、PHPの設定とビルド
./buildconf
./configure
make
make test
make install
依存関係がないために構成が失敗した場合は、オペレーティングシステムのパッケージ管理システム( yum
、 apt
など)をインストールするか、ソースからダウンロードしてコンパイルする必要があります。