# php 開発におけるコーディングルール・規約

# BASE

  • VSCode 使う
  • コードフォーマットは Prettier - Code formatter (opens new window) 使う
  • マジックナンバー使わないで定数明確化
  • 型のキャストは小文字
  • 文末の空白を除去
  • シングルクォートとダブルクォートは適切に使い分け

# 共有連絡必要な項目

  • 共通類:migration 追加・変更・削除
  • 設定類:設定変更、追加する必要がある env config など
  • コマンド類:コマンド実行する必要がある場合
  • 他のメンバーに影響する箇所がある場合
  • コードの読みやすさは賢さや短さより重要

# PHP

  • インデントスタイルはスペース 4 つ
  • controller から model 直接引用しない、repository に集約管理
  • 定数はすべて大文字で、アンダースコア
  • すべてのブロックに対してブレース (波かっこ) を使用
  • elseifを使うelse ifは禁止
  • PHP ショートタグは禁止
  • 変数、アクションの名前は小文字でスネークケース使用

プレース使わない悪い例




 









 

  $i = 0;
  $k = 1;

  if( $i === 0 ):

  /*
   * 長い処理....
   */

    if( $k > $i ){
        echo $k;
    }

  endif;

# DB

  • 不要なテーブルは名前の末尾にアンダーバーつけて時間置いて削除

# コメント

  • ファンクション毎にコメントで説明する
  • 重要箇所はコメント
  • 不安定箇所や今後変更される予定のある箇所は TODO つける

# JS

  • インデントスタイルはスペース 2 つ
  • Microsoft ESLint (opens new window)
  • できるだけの types 定義 any 型使わない
  • 変数、アクションの名前はキャメルケース使用

# ドキュメントサイト

プロジェクトの規模にもよりますが、できればドキュメントをまとめてドキュメントサイトに管理した方がいい。

  • 検索機能
  • git 管理で変更履歴確認
  • ハイライト
  • 見出し

# エディター設定

.editorconfig

## EditorConfig is awesome: https://EditorConfig.org

## top-most EditorConfig file
root = true

## Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

## Matches multiple files with brace expansion notation
## Set default charset
[*.{js,php}]
charset = utf-8

## 4 space indentation
[*.php]
indent_style = space
indent_size = 4

## Tab indentation (no size specified)
[Makefile]
indent_style = tab

## Indentation override for all JS under lib directory
[lib/**.js]
indent_style = space
indent_size = 2

## Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
2019-06-01
  • php
  • javascript
レンタルサーバー エックスサーバー レンタルサーバー エックスサーバー DMM fx DMM fx 開発/運用エンジニア募集プログラム 開発/運用エンジニア募集プログラム 外為ジャパンFX 新規口座開設促進 外為ジャパンFX 新規口座開設促進 eBay公式ショッピングサイト Qoo10 eBay公式ショッピングサイト Qoo10 Amazon.co.jpのカテゴリごとのページ

関連記事

php CSV データ取得は fgetcsv 使う
Laravel tinker 使って DB データベース接続とコマンド
Laravel Test についてのメモ
Laravel Log の基本設定&使い方
Exception: Class 'ZipArchive' not found
Cookie localStorage sessionStorage の違い
Javascript var let const 変数宣言の違い
Laravel Sail で Docker 環境構築
PHP 文字列長さ・文字列の幅を取得方法
Codeigniter 画像アップロードとリサイズ
Javascript 電話番号フォーマット
Laravel Lumen Faker 日本語設定
国際化 i18n と地域化 L10N
大きいファイルをスライス分割してアップロード
javascript 文字列と配列検索 indexOf findIndex find some includes 関数の違い
Javascript DataTables で excel 風 table 作る
javascript 配列 重複排除
laravel method の基本 get post put options
vuejs back to top button component 作成
bootstrap vuejs 使って generate する際に babel が icons ファイル max 500KB エラー
Laravel schedule 設定
Class 'Imagick' not found Error
Laravel eloquent model の規約
PHP mbconvertkana 全角半角英数カナ変換
Codeigniter APPPATH BASEPATH FCPATH 各種パスと URL 取得
Nuxtjs 動的なルーティング静的ページ自動生成
Laravel timestamp() auto update 有効化無効化
Lumen8 で JWT ユーザー認証
キーコード取得 & キーコード一覧
Laravel toSql パラメータ付きで出力
Lumen8 で API 開発
php Exception エラーキャッチでメール送信
Sweet Alert swal に複数 content
Smarty HTTP URL 取得できるサーバー関数
Laravel blade foreach loop と current url
laravel session を制する
moment.js 使って日本語曜日対応
PHP empty isset is_null の違い
PHP 8 リリース新機能と変更
javascript 開発で出会った TypeError
FlattenException deprecated
php.ini 初期設定のいろいろ
Laravel 5.1 から 8.1 にバージョンアップ
PHP 7.4 にアップグレードして使えなくなる機能
開発時によく使うゼロ埋めパディング作業まとめ
ReferenceError: location is not defined
vuejs で omisejapan の決済フォーム作成した時のメモ
php date 日付の日数・月数差を計算
ブラウザーで動く javascript のクッキー操作ライブラリ js-cookie
解決!phpMyAdmin テーブル構造の内容が表示されない問題
codeigniter email ライブラリでメール送信 日本語対応
javascript reduce 連想配列の合計計算覚えよう
Composer コマンドとオプション
爆速軽量フレームワーク codeigniter PHP 開発
nuxtjs と codeigniter で jwt システム構築
nodejs 使う時のエラーたち
Lumen と Laravel 違い比較
javascript で作る html から PDF 変換 pdfmake の日本語対応
HTML から PDF に変換 PHP ライブラリ mPDF の設定
javascript 楽しく遊ぼう!メッセージつぶやくウシ cowsay
twig 3 人気 PHP テンプレートエンジンがバージョンアップ
Javascript vuejs の validation 正規表現でフォームチェック作ったときのメモ
正規表現一覧 よく使う検索・置換のパターン
javascript 日本語 shift-js 対応 CSV ダウンロード
Apache 初期設定メモ
Laravel Error についてのメモ
laravel に vuejs 使うための初期設定
php curl 使って クリックなしで POST 送信
allowurlinclude の設定で ftp_connect()エラー