GitHubでこのページを編集

Home / 5 / ucmitz / basic / パッケージ構成

パッケージ構成

ucmitz を親パッケージとして、BaserCore、BcAdminThird など必要とするパッケージを CakePHP のプラグインとして開発し、子パッケージとして管理しています。

コアの構成

親パッケージ

Gitでクローンした本体。親パッケージとして ucmitz のアプリケーションフレームを提供します。

 

コアパッケージ

baserCMSのコア(BaserCore)、デフォルトの管理画面テーマ(BcAdminThird)、デフォルトのフロントテーマ(BcFront)、そしてインストーラー(BcInstaller)は、CakePHPのプラグインとしての開発を前提とし、/plugins/ 配下に配置する仕様としています。
BaserCore は、主にURLに紐づくルーティングと、ビジネスロジックを提供します。

コアプラグイン

baserCMSのコアパッケージと共にコアに梱包するいくつかのプラグインはコアプラグインとして、/plugins/ 配下に配置する仕様としています。

その他のプラグインも同様に、CakePHPのプラグインとしての開発を前提とし、 /plugins/ 配下内に配置します。
なお、コアパッケージ、コアテーマ以外のプラグインのロードは、 composer でのインストールは不要で、管理画面でプラグインをインストールする事で利用可能となります。

 

プラグインフォルダの命名

コアパッケージ、コアテーマ、コアプラグインについては、ハイフン区切り(dasherize)とし、その他のプラグインについては、アッパーキャメルケースとします。

例)
コア:baser-core / bc-admin-third / bc-blog
その他:BcSpaSample

 

モノレポによるパッケージ管理

複数のパッケージを統合的に管理するためにPHP用のモノレポ 「monorepo-builder」 を利用しています。
リリース時に次のレポジトリに分割してコミットされます。

 

統合的なパッケージ管理

子パッケージの composer.json 記述したパッケージは、monorepo-builder により、親パッケージの composer.json にまとめあげることができ、vendor ディレクトリも親の vendor で統合的に管理することができます。

そのため、子パッケージの composer.lockvendor ディレクトリは利用しません。(.gitignore で除外済です)

子パッケージの composer の構成を変更する

子パッケージの composer.json を変更した場合は、次のコマンドを実行して親パッケージにまとめあげる必要があります。

vendor/bin/monorepo-builder merge

パッケージのリリース

モノレポを使うことで、GitHub 上のパッケージごとのレポジトリへ、一括でリリースすることができます。
ただし、子パッケージは、読み取り専用の扱いとします。

子パッケージのリリースを行う場合は、次のコマンドを実行します。

vendor/bin/monorepo-builder release [バージョン番号]

参考文献

MonorepoBuilderでPHPのモノレポを作るチュートリアル