コーディングガイドライン: はじめに

concrete5 で改造、拡張ブロック作成、パッケージ作成される際の、コーディングのガイドラインです。開発元該当ページの翻訳版です。

v5.3.2時点でのコーディングガイドラインです。

特にマーケットプレイスでパッケージを配布されたいと思われている方は、このガイドラインを厳守して下さい。

 

フォーマット

  • php開始宣言は"<?php"でお願いします。"<?"ではありません。古いバージョンでは、php無しのコードもありますが、今後は "<?php"を必須にして行きます。
  • テキストのインデントは、タブでお願いします。スペースは認めません。
  • ファイルが、phpコードのみの場合、クロージングタグ "?>"の使用をしないで下さい
  • 一行の長さを半角80字以内に
  • UNIX形式の改行コード (LF) が必須
  • 日本語が含まれる場合、エンコーディングを UTF-8
  • ファイル名・関数名・クラス名は全て半角英数字で記入

 

名前付けのルール

ファイル & ディレクトリー名

  • ファイル・ディレクトリー名は全て、半角英小文字、単語を分ける時は下線(_)を使用。英語大文字は認められません

クラス、関数(Function)名前付け

  • ブロックのクラス名は「MyBlockNameBlockController」 = (ブロック名BlockController)」といったようにして下さい。
  • 「MyBlockName」は、ブロックが保存されているディレクトリー名に単語の最初を英数大文字にしたものです。
    • 例えばブロックを格納しているディレクトリーが「image_gallery」だとすると、controller.php内のクラス名を「ImageGalleryBlockController」として下さい。
    • ディレクトリー名を「imagegallery」と下線をつけない場合でも、英単語が2つ入っているのでクラス名を「ImageGallery」と単語の最初の文字を大文字にして下さい。
  • ヘルパーの名前は「HelperNameHelper」 =  (ヘルパー名Helper) として下さい
    • 例えば、新たにディレクトリー「ldap_authenticate」を作成し、そのディレクトリー内にファイルを格納する場合、ヘルパー名は「LdapAuthenticateHelper」としなければいけません。

クラス・ファンクションの操作(Method)

  • システムの基幹モデルは、データベースのテーブル名と同じように名前付けして下さい。
    • 「page.php」であれば、「Page」や「Pages」。「page_theme.php」であれば「PageTheme」や「PageThemes」など
  • モデル内では、すべて、半角英文字のみを使用し、単語の最初のみを大文字にして下さい。下線(_)の使用は禁止です。
  • controller内でのfunctionは全て半角英小文字で統一して下さい。controllerでは下線の使用が許可されています。

パラメーター (Parameter)

  • 全てのパラメーターは、半角英小文字のみ(大文字は不可)。下線の使用が許可されています。

データベース・テーブル

  • 全てのデータベース名は、単語の1文字目が大文字、そのあとは小文字の表記でお願いしますが、以下の例外があります。
    • ブロックタイプ用のテーブルは「bt」という小文字で始めて下さい。その後は上記の通りです。
    • ブロックがいくつかのテーブルを使用することになれば、テーブル名の最初に、「btブロック名」を入れて下さい。
      • 例:投票ブロック「btPoll」「btPollQuestions」「btPollAnswers」など

 

コーディングスタイル

文字列 (String)

  • 変数置換が含まれていない場合
    • 文字列にアポストロフィー「'」を使用して下さい
    • 文字列にアポストロフィー「'」が入る場合のみ、クオート「"」を使用して下さい
  • 変数置換は以下の2パターンで可能です。これ以外の方法は使わない様にしてください
      • $greeting = "Hello $name, welcome back!";
      • $greeting = "Hello {$name}, welcome back!";
  • 文字列・変数連結処理
    • 文字列を結合される場合は「.」半角ピリオドを使用し、ピリオドの前後には半角のスペースを入れて下さい。
      • 例:$dish = 'Fruit' . ' ' . 'Salad';
    • 半角ピリオド「.」で連結処理をする際に、行が長くなった場合、処理を複数行化する事が認められます。
      • 例:
        • $img = "<img border=\"0\"(省略)
        • $img .= ($align) ? "align=\"{$align}\" " : '';
        • $img .= ($style) ? "style=\"{$style}\" " : '';

配列 (Array)

  • 数字での配列
    • マイナスを使わないで下さい
    • 配列(Array)は常に「0」を基本とする様にして下さい
    • 配列のインデックスを宣言する際、読みやすい様にカンマ(,)の後に、半角ページを忘れずにお願いします
      • 例:$sampleArray = array(1, 2, 3, 'Concrete');
  • 連想配列 (Associative Array)
    • 連想配列を宣言する際は、配列毎に改行し、配列名と値が見やすい様に空白をおいて下さい

クラス (Class) 操作 (Method) 関数 (Function)

  • クラス名は、行の一番最初、インデントなしで開始して下さい
  • クラス・関数の定義の最初の中括弧 (Brace) は宣言文と同じ行に記入して下さい
    • 例: class ○○Controller extends Controller { 
  • クラス・関数の定義の最後の中括弧 (Brace) は新しい行に、クラスや関数と同じインデントで宣言して下さい。
    • 例:
      class ○○Controller extends Controller { 
          $this-> $cdemo = "demo"
  • クラス変数を宣言する際、php5のキーワードに沿うようにしてください

制御・分岐処理

If/Else If/Else

  • if / elseif を宣言する際は、開始括弧の前と終了括弧の後に、半角の空白を入れて下さい。
  • 条件を宣言する分は、半角スペースを使い読みやすい様にして下さい、また条件が複雑になる場合は、条件の内部で分岐処理をするなど、論理的な構造にして下さい
  • 「elseif」よりも「else if」を使用する様にして下さい
  • 開始の括弧は、条件の宣言と同じ行に記入し、終了の括弧は、改行後にその括弧のみが、宣言と同じインデントで宣言される様にして下さい
    • 例:
      if ($a=demo) {
            $b = "test"
      } 
  • 一行だけの 「if」「else」で、括弧「{}」を省略する事を禁止します

Switch

  • Switch 条件の開始括弧の前、終了括弧の後に、半角スペースを記入して下さい
  • Switch 内のコードには、かならず、インデントを1つ加える事を忘れないで下さい
  • また、「case」内も必ずインデントを加える様にして下さい
    • 例:

switch ($numPeople) { case 1: break;

case 2: break;

default: break; }

  • 「default」を省略しないで下さい

制御構文に別の条件を加える行為