= PHPライブラリ系パッケージのポリシー = PHPのライブラリ的なものとしては、大きく分けて以下の2種類があります。 * 機能拡張(PECLモジュール等、C言語等で書かれたもの) * PHPコンポーネント(PEARコンポーネント等、PHP言語で書かれたもの) これらのパッケージングポリシーについて以下に記述します。 == パッケージ命名規則 == === 機能拡張 === ==== バイナリパッケージ名 ====  対象となるPHPバージョンによってバイナリパッケージ名を変え、"php5-ext-(拡張機能名)"または"php70-ext-(拡張機能名)"とします。 (例)Memcached拡張の場合 * php5-ext-memcached * php70-ext-memcached ==== ソースパッケージ名 ==== ===== php5・php70用を1つのsrc.rpmから生成する場合 =====  "php-ext-(拡張機能名)"とします。 (例)Memcached拡張の場合 * php-ext-memcached ===== php5・php70用を別個のsrc.rpmから生成する場合 =====  "php5-ext-(拡張機能名)"または"php70-ext-(拡張機能名)"とします。 (例)Memcached拡張の場合 * php5-ext-memcached * php70-ext-memcached === PHPコンポーネント === ==== バイナリパッケージ名 ====  対象となるPHPバージョンによってバイナリパッケージ名を変え、"php5-(コンポーネント名)"または"php70-(コンポーネント名)"とします。アンダスコア("_")はハイフン("-")に変換します。 (例)Archive_Tarクラスの場合 * php5-Archive-Tar * php70-Archive-Tar ==== ソースパッケージ名 ==== ===== php5・php70用を1つのsrc.rpmから生成する場合 ===== "php-(コンポーネント名)"とします。 (例)Archive_Tarクラスの場合 * php-Archive-Tar ===== php5・php70用を別個のsrc.rpmから生成する場合 =====  "php5-(コンポーネント名)"または"php70-(コンポーネント名)"とします。 (例)Archive_Tarクラスの場合 * php5-Archive-Tar * php70-Archive-Tar == 機能拡張のパッケージング時のrpmマクロ == PHP本体のAPIバージョンと合っているパッケージのみインストール可能となるよう、以下のマクロを用意してあります。 * %req_php_api (PHP extension用) * %req_zend_api (Zend extension用) specファイル中にて、 * php5用の場合 {{{ %if "%{?req_php5_api}" != "" Requires: %{req_php5_api} %endif }}} * php70用の場合 {{{ %if "%{?req_php70_api}" != "" Requires: %{req_php70_api} %endif }}} と記述することにより、rpm依存関係上でも、機能拡張パッケージのbuild時に使用したPHPと同じAPIバージョンを要求するようになります。