# GawdiBoard コーディング規約 ###### tags: `卒業制作` ## バックエンド [PSR12](https://www.php-fig.org/psr/psr-12/)に準拠しつつ、追加でいくつかの規約を設ける。 追加で設けられた規約については[php fixerの設定](#リンクはまだない)を参照。 ### 命名規則 | 対象 | 規則 | 例 | | ---------------- | ---------------------- | -------------- | | 変数名 | スネークケース | snake_cace | | 関数名 | キャメルケース | camelCase | | クラス名 | アッパーキャメルケース | UpperCamelCase | | クラスファイル名 | アッパーキャメルケース | UpperCamelCase | | 設定ファイル名 | スネークケース | snake_case | (マイグレーションファイルなど自動でファイル名がつくもののファイル名はそのまま触らない) :star: [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)を利用してコードを自動整形するためコーディング時に命名以外の規約を気にする必要はない。 ## フロントエンド ### コーディング規約 [eslint](https://eslint.org/), [prettier](https://prettier.io/)を使ってフォーマットする。細かい規約はレポジトリ内のそれぞれの設定ファイル参照 :star:自動整形するのでコーディング時は気にしなくてよい。 ## 備考 ### バックエンド 基準をPSR12にした理由: (記述日: 2021/11/14) PSR12が現在のスタンダードではあるが[LaravelはPSR2に準拠してる](https://laravel.com/docs/8.x/contributions#coding-style)のでartisanコマンドで自動生成されるコードもPSR2を基準にしてると思われる。PSR12で新しく追加された項目があるのと、PHP-CS-Fixerにおいては現在PSR2とPSR12で[braces](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.2.1/doc/rules/basic/braces.rst#rule-sets), [class_definition](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.2.1/doc/rules/class_notation/class_definition.rst#rule-sets), [visibility_required](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/v3.2.1/doc/rules/class_notation/visibility_required.rst#rule-sets)の設定に若干の違いがあるので、これらの項目だけPSR2に合わせることも考えたが、たいして重大な違いじゃない気がするのと今後設定項目が増えるたびにいちいちPSR2とPSR12で相違がないか確認するのも大変なのでPSR12で統一した。 変数名がスネークケースな理由: Laravelのコードベース自体はキャメルケースなのだけど、命名規則を決めたのが遅くて既に回収できない量のスネークケースの変数が存在したのでそちらで統一した。 ### フロントエンド ぴえ