Wiki » 履歴 » リビジョン 5
リビジョン 4 (AppTime 管理, 2024/04/21 10:04) → リビジョン 5/6 (AppTime 管理, 2024/04/21 10:07)
# Wiki
## コーディング規約
基本的に下記に書かれている一般的なベストプラクティスを適用する
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md
[フロントエンドの規約はこちら](https://redmine.apptime.sbs/projects/trust_lead/wiki/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3)
### ルーティング
一般的なRESTの規則に従って実装をします
- index - リソースの一覧を表示します。
GET /photos
- create - 新規リソース作成用のフォームを表示します。
GET /photos/create
- store - 新規リソースを作成します。
POST /photos
- show - 特定のリソースを表示します。
GET /photos/{photo}
- edit - 既存のリソースを編集するフォームを表示します。
GET /photos/{photo}/edit
- update - 既存のリソースを更新します。
PUT/PATCH /photos/{photo}
- destroy - 既存のリソースを削除します。
DELETE /photos/{photo}
#### 例外のルート
上記の命名規則では対応しきれないルートは別名を付けて良いものとする
例:`search`、`register`
基本は上記の命名で、対応しきれない場合のみ例外を適用する
#### ルートモデルバインディング
上記の show、edit、update、destroy ではパラメータに {photo} を使用しています。これはLaravelのルートモデルバインディング機能を利用するためです。
PhotoController の各アクションメソッドでは、Photo モデルのインスタンスを直接受け取ることができます。
```php
// app/Http/Controllers/PhotoController.php
public function show(Photo $photo)
{
return view('photos.show', compact('photo'));
}
```
- 外部APIサービスを利用するようなものなどはServiceクラスを作る
- これによりコントローラーに限られず、Livewireコンポーネントからでも呼び出し可能になります
- 型定義を引数、プロパティ、戻り値に全て必ず記述する
- PHPDocにServiceクラスなどを作る際はメソッドなどはわかりやすいように説明を記述する
- テーブルに区分値がある場合は`app/Enums`配下にEnumを作る
- 例に既にいくつか作っているため参考にしてください
- boolean型などの真偽値は定数を作らなくて良いです