-
ソースダウンロード
git clone 'https://github.com/q23isline/reinventing_the_wheel.git'
-
config/.env.example
をコピーし、config/.env
として貼り付ける- ファイル内の
SECURITY_SALT
の値は適当に書き換える
cd reinventing_the_wheel cp config/.env.example config/.env
- ファイル内の
-
config/app_local.example.php
をコピーし、config/app_local.php
として貼り付けるcp config/app_local.example.php config/app_local.php
-
DB コンテナ起動時に Permission Denied で起動できない状態にならないように権限付与する
sudo chmod -R ugo+w logs
-
アプリ立ち上げ
docker compose build --no-cache docker compose down -v sudo rm -rf vendor docker create -it --name app reinventing_the_wheel-app bash sudo docker cp app:/var/www/html/vendor $(pwd) docker rm -f app sudo chown -R $(whoami):$(whoami) vendor docker compose up -d docker exec -it app bin/cake migrations migrate docker exec -it app bin/cake migrations seed
※ Mac OS で
chown: {自身のユーザー名}: illegal group name
エラーが発生する場合、以下のコマンドを代わりに実行するsudo chown -R $(whoami):staff vendor
docker compose up -d
docker compose down
Mail Address | Password |
---|---|
[email protected] | admin00 |
- ログイン後、画面にPermission Deniedエラーが表示される場合、以下を実行
- 本番環境では適切に権限を付与すべきだがとりあえず動くようにフル権限を付与
sudo chmod -R 777 tmp
sudo chmod -R ugo+w logs
docker exec -it app php composer.phar check
# コーディング標準チェック実行
docker exec -it app ./vendor/bin/phpcs --colors -p src/ tests/
# コーディング標準チェック自動整形実行
docker exec -it app ./vendor/bin/phpcbf --colors -p src/ tests/
docker exec -it app ./vendor/bin/phpstan analyse
# テスト実行
docker exec -it --env XDEBUG_MODE=coverage app ./vendor/bin/phpunit --colors=always
# カバレッジ生成
docker exec -it --env XDEBUG_MODE=coverage app ./vendor/bin/phpunit --coverage-html webroot/coverage
- カバレッジ確認URL
docs/diagrams/src
配下の.xml
ファイルにて定義
docs\api\src\reference
以下の.yaml
ファイルにて定義- Stoplight Studioソフトに読み込ませることでメンテナンス可能
- APIドキュメントHTML化手順
- nodejsインストールダウンロードリンク
- 以下のコマンド実行
# HTML変換用ライブラリインストール(一回のみ実行)
npm install -g redoc-cli
# `yaml`ファイルをHTMLへ変換する
redoc-cli bundle xxxxxx.yaml
- Headersに以下を設定
KEY | VALUE |
---|---|
Cookie | PHPSESSID=xxxxxx; csrfToken=xxxxxx |
- 【GET以外の場合】BodyのrawにJSONで以下を設定
{
// 画面の HTML を表示し、input タグの name が _csrfToken の value
"_csrfToken": "xxxxxxxxx",
// .....
}
- VS Code | Marketplace | PHP Debugをインストールする
- VS CodeにXDebug用の構成ファイル(launch.json)を追加する
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"hostname": "0.0.0.0",
"pathMappings": {
"/var/www/html/": "${workspaceRoot}"
},
"environment": {
// デバッグ時はログレベルを 7
"XDEBUG_CONFIG": "log_level=7"
}
}
]
}
オニオンアーキテクチャ
reinventing_the_wheel
├src
│├Controller :ユーザーインターフェイス(プレゼンテーション)層[MVCのC]
││└Api
││ └{version}
││ └{functionName}Controller.php
│├Domain
││├Models :ドメインモデル層
│││└{functionName}
│││ ├Type
│││ │└{columnName}.php
│││ ├I{functionName}Repository.php :依存関係逆転の原則用
│││ ├{functionName}.php
│││ └{functionName}Collection.php
││├Services :ドメインサービス層
│││└{functionName}Service.php
││└Shared
││ └Exception
││ ├ExceptionItem.php
││ └ValidateException.php
│├Infrastructure :インフラ層
││├CakePHP :MVCのMを呼び出す
│││└{functionName}
│││ └CakePHP{functionName}Repository.php
││└InMemory :テスト用
││ └{functionName}
││ └InMemory{functionName}Repository.php
│└UseCase :アプリケーションサービス(ユースケース)層
│ └{functionName}
│ ├{functionName}{actionName}Command.php :ファサード用
│ ├{functionName}{actionName}UseCase.php
│ ├{functionName}Data.php :DTO用
│ └{functionName}{actionName}Result.php :出力整形用
└docs
├api :APIドキュメント
│└src
│ └reference
│ └{functionName}.{version}.yaml
└diagrams :sudoモデリングの図
└src
└reinventing_the_wheel.drawio.xml