PHP/CLI のアプリの基本構造

PHP/CLI のアプリの基本構造

PHP で CLI のアプリ。つまり Web じゃなくてバッチとかで使うためのコードの基本構造。

自分は別に PHPer とかでないので、仕事のために1日だけ調べて作ってみてこんな感じかなという memo。

.
├── Config.php              ← このアプリの設定一式をクラスの静的フィールドに書き込んだもの
├── ConfigTest.php          ← テスト環境用ファイル
├── README.md               ← このアプリを使うための操作手順一式
├── bootstrap.php           ← 設定ファイルと autoload を両方読み込み各種初期化をやるやつ
├── bootstraptest.php       ← テスト環境用ファイル
├── composer.json           ← 構成を管理する Composer の設定ファイル
├── composer.lock           ← Composer の確定版のファイル
├── hoge.php                ← このアプリを起動するエントリーポイント
├── dbup                    ← DBマイグレーションツール置き場 これは dbup というツール
│     ├── dbup.phar        ← DBマイグレーションツール dbup 本体
│     └── sql              ← マイグレーション用 SQL 置き場
│            └── V20170829__create_table.sql
├── src                     ← 本体のソース置き場、以下 namespace 構造と一致させる
│     └── jp
│            └── co
│                   └── unko
│                          ├── model                ← 主に DB へアクセスするための model を格納する場所
│                          │      └── HogeHoge.php  ← そのクラス
│                          └── job                  ← 具体的な処理の流れ一式が書いてあるクラス置き場。エントリーポイントはここをキックする。
├── test                    ← テストコード置き場 以下本体ソースとディレクトリ構成を一致させる
│     └── jp
│            └── co
│                   └── unko
│                          └── model
│                                 ├── HogeHogeTest             ← 同名のテストクラスで使うデータやファイルをおいておく場所
│                                 │     └── testPiyoPiyo.xxx  ← 対象のテストメソッドで使うファイルやらディレクトリやら
│                                 │
│                                 └── HogeHogeTest.php         ← 対象のテストクラス
├── vendor                 ← composer でダウンロードした各種ライブラリの格納ディレクトリ
│     └── autoload.php    ← オートローダー
├── log                    ← ログの出力場所

テストの起動

$ vendor/bin/phpunit --colors --bootstrap bootstraptest.php test/jp/co/unko/model/HogeHogeTest
php/basic_cli_app_structure.txt · 最終更新: 2019-12-25 10:13 by ore