【laravel】laravelの命名規則

# 概要
LaravelのコーディングスタイルはPHP-FIGが定めた規約のPSR-2に準拠している。
PSRにはPSR-0、PSR-1、PSR-2、PSR-4などがあり、PSR-0とPSR-4はPHPのオートローダーのための規約で、PSR-1とPSR-2は標準コーディング規約になっている。
PSRの記事ではないため規約の詳細は見やすいページのリンクを参考リンクに載せておきます。

# テーブル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>スネークケース</td>
<td>複数</td>
<td>users<br>
item_tables
</td>
</tr>
</table>
＊その他注意点など
特記なし。

# モデル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>アッパーキャメル</td>
<td>単数</td>
<td>UserData<br>
ItemList
</td>
</tr>
</table>
＊その他注意点など
テーブル名を単数系に変換したファイル名にする。

# migrationのファイル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>スネークケース</td>
<td>単数</td>
<td>xxx_crate_users_table<br>
xxx_add_to_items_table
</tr>
</table>
＊その他注意点など
「artisan make:migraton ファイル名」になる。
「xxx」には作成日時が自動で入る。
「add_to_xxx_table」とすることでxxxがテーブル名として認識される。

# seedsのファイル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>アッパーキャメル</td>
<td>指定なし</td>
<td>UsersTableSeeder<br>
ItemTableSeeder
</tr>
</table>
＊その他注意点など
ファイル名の最後を「Seeder」とする。


# Controllersのファイル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>アッパーキャメル</td>
<td>指定なし</td>
<td>UserDataController<br>
ItemListController
</td>
</tr>
</table>
＊その他注意点など
ファイル名の最後を「Controller」とする。

# viewsのファイル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>スネークケース</td>
<td>指定なし</td>
<td>index<br>
users_add
</td>
</tr>
</table>
＊その他注意点など
blade.phpも同様。

# 一覧
注記を省略して一覧としてまとめます。

<table>
<tr>
<th>種類</th>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>

<tr>
<th>テーブル名</th>
<td>スネークケース</td>
<td>複数</td>
<td>users_table</td>
</tr>

<tr>
<th>モデル名</th>
<td>アッパーキャメル</td>
<td>単数</td>
<td>UserData</td>
</tr>

<tr>
<th>migration名</th>
<td>スネークケース</td>
<td>単数</td>
<td>xxx_crate_users_table</td>
</tr>

<tr>
<th>seeder名</th>
<td>アッパーキャメル</td>
<td>－－－</td>
<td>UsersTableSeeder</td>
</tr>

<tr>
<th>Controllers名</th>
<td>アッパーキャメル</td>
<td>－－－</td>
<td>UserDataController</td>
</tr>

<tr>
<th>views名</th>
<td>スネークケース</td>
<td>－－－</td>
<td>users_add</td>
</tr>
</table>

# その他の命名規則
わざわざ書き起こすような内容ではありませんが、せっかく命名規則について書き起こしたので備忘録として書きます。
laravel（PHP）では変数を$xxxと表現するため問題ないですが、他言語ではメソッド名やデータベース名と混同しないように注意する。

## クラス名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>アッパーキャメル</td>
<td>－－－</td>
<td>UserData<br>
ItemList
</td>
</tr>
</table>

## メソッド名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>ローワーキャメル</td>
<td>－－－</td>
<td>userData<br>
itemList
</td>
</tr>
</table>

## 変数名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>スネークケース</td>
<td>－－－</td>
<td>$user_data<br>
$item_list
</td>
</tr>
</table>

キャメルケースだとクラス名やメソッド名との混同しやすいため、変数はスネークケースで統一しています。
また、PSRで変数名に指定はないが一貫性を持たせるべきという文言はあります。

## ディレクトリ名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>アッパーキャメル</td>
<td>－－－</td>
<td>UserData<br>
ItemList
</td>
</tr>
</table>


## ファイル名
<table>
<tr>
<th>記法</th>
<th>複数or単数</th>
<th>例</th>
</tr>
<tr>
<td>スネークケース</td>
<td>－－－</td>
<td>user_data<br>
item_list
</td>
</tr>
</table>

#参考
<a href="https://laraweb.net/knowledge/942/" target="blank" >Laravel学習帳</a>
<a href="https://www.ritolab.com/entry/92" target="blank" >Rito Labo</a>
<a href="https://blog-ja.sideci.com/entry/PHP-codingstyles" target="blank" >Sider Blog</a>