Laravelの標準機能
- FormRequest
- ApiResource
- Policy
- FeatureTest(UnitTestは無理せずできる範囲で)
- langファイル(エラーメッセージなど)
- Observer
- FakerとSeeder
- Preventing Lazy Loading(N+1をエラーにしてくれる)
- Laradock
- 自動トランザクション
サードパーティ製パッケージ
- nunomaduro/larastan (静的解析ツール)
- friendsofphp/php-cs-fixer(formatter)
- hotmeteor/spectator(OpenAPIに沿ったFeatureテストが簡単に実装できる)
その他
- PHP 8.x
- Laravel 9.x
- CI, CD
- 命名規則
- Laravelベストプラクティス集
- なんちゃってクリーンアーキテクチャ
- 全てのクラスにBaseClassを作成し、共通化はそこで行う(BaseControllerなど)
- docsフォルダを作り仕様をmdで残す(Controllerごとがいいのかな?)
- トランザクション処理のMiddlewareを作る(参考)
Database
新規テーブル作成時
テーブルを作成する際は以下のコマンドを使う
php artisan make:model User --all
テーブル(カラム)変更時
modify_テーブル名_table_日付 --table=テーブル名
で統一する。
命名を統一させたいが同じクラス名を宣言できないため日付を入れる。
php artisan make:migration modify_users_table_20221201 --table=users