Laravelとその周辺の命名規則を個人的なものも含めてまとめたメモ
2020/06/18 Vueを追加
ソースコード
モデル名 EditUser (単数形、パスカルケース)
コントローラー名 EditUsersController (単数形か複数形、パスカルケース)
ビュー edit_users/create.blade.php (単数形か複数形、スネークケース)
- コントローラーとビューには同じ規則を適用
データベース
テーブル名 edit_users (複数形、スネークケース)
カラム名 second_name (スネークケース)
外部キー edit_user_id (モデル名_id)
中間テーブル post_tag (モデルのアルファベット順、スネークケース)
edit_users (id int, name string, second_name string)
posts (id int, body string, edit_user_id int)
tags (id int, name string)
post_tag (id int, post_id int, tag_id int)
PSR-2
クラス名 EditUsersController (パスカルケース)
メソッド名 createEditUser (キャメルケース)
変数 $edit_user (スネークケース)
定数 MAX_USER (大文字 + _)
- 名前は長くても20文字程度
JavaScript
オブジェクト・関数・インスタンス (キャメルケース)
クラス (パスカルケース)
定数 MAX_USER (大文字 + _)
プライベートメンバ _internalFunction (_ + キャメルケース)
イベントハンドラ onDialogAccept (on + パスカルケース)
const MAX_INGREDIENT = 5;
let thisIsMyObject = {};
let thisIsMyFunction() => {};
class Line {
const CONST_POINT = {x: 123, y: 456};
let index = 1;
constructor(x1, y1, x2, y2) {
this.point1 = {x: x1, y: y1};
this.point2 = {x: x2, y: y2};
this.index = x1 + x2;
super.constructor(x1, y1, x2, y2);
}
static displayName = "Line";
static greaterThan(a, b){
return a.distance > b.distance
}
distance() {
const dx = this.point1.x - this.point2.x;
const dy = this.point1.y - this.point2.y;
return Math.hypot(dx, dy);
}
}
let street = new Line(1, 2, 3, 4);
Vue
ファイル名 ((Base, App, V + )パスカルケース) 複数単語にする
コンポーネント パスカルケース
propsを渡す側 ケバブケース
ptopsを受け取る側 キャメルケース
<UserListItem first-name="satou" />
...
export default {
props: {
firstName: String
}
}
HTML
class属性 CSSで使用するのでケバブケース
id属性 JavaScriptで使用するのでキャメルケース
data-*属性 JavaScriptで使用するのでキャメルケース
<input id="nameInput" class="d-block" type="text" name="name" data-editType="name"></input>
その他
ルート http://abc.de.jp/play-histories/{play_history} (ケバブケース)
- 変数はスネークケース
- 基本は小文字で統一
参考
https://laraweb.net/knowledge/942/
https://qiita.com/Takashi_INOUE/items/41d9fedaad1ff338cada
http://snowdream.github.io/javascript-style-guide/javascript-style-guide/jp/naming-conventions.html
https://www.asobou.co.jp/blog/web/url-optimisation
https://qiita.com/itagakishintaro/items/168667d5ee4c56b30d52
https://qiita.com/ngron/items/ab2a17ae483c95a2f15e