PHPコードパターン

4165 ワード

サードパーティフレームを使用し、コードスタイルの説明がある場合は、コードスタイルの基準に従います.
==フォーマット:
*UTF-8を使って符号化する
*4つのスペースを使ってインデントし、Tabを使用してはいけません.
*Unixスタイルの改行(LF)
*コンマ、コロン、セミコロンでスペースを使う
*(、[後ろ、])の前にはスペースは使用されません.
*コードブロックに4つのスペースを使ってインデントする
*階層インデントを使う
*returnメソッドの戻り値の前に空行(1行のコードのみでない限り)を使用し、2つの方法で空行の区分を使用します.
*2つの大きな論理コードセグメントの間に空行の区分を使用する
*行の文字数は80文字以内で、最大120を超えない
*標準のPHPラベルの境界を使用して、短いラベルの使用は禁止されています(PHP終了フラグ("?")の使用は禁止されており、ファイル末尾にはコメントを使用して説明しています.
*単一行コードもセミコロン(;)で終了しなければなりません.
==名前:
*ファイル名はスネーク(u)を使用します.case方式、太ったファイル名の使用を禁止します.
*変数名はsnake(u)を使います.case方式で、太った変数名の使用を禁止します.
  * 単文字を局所変数として使用することを禁止します.
  * 大文字をグローバル変数として使用することは禁止されています.大文字はSCREAMING(u)を使用します.SNAKE_CASE方式
*クラス名はCamelCase方式を使用し、メソッド名はcamelCase方式を使用する(HTTP、RFC、XML略語の大文字を保持する)
*定数名はSCREAMING_を使用するSNAKE_CASE方式

// bad
superclass.php
SuperClass.php
superClass.php

$i = "foobar";  //            for   
$bufferdText   //      ,          
$groupid        //              
$name_of_last_city_used //   

MyConstant       //                
N                     //    
S_C_VER           //      

class superclass
class superClass

function fileproperties() //               
function fileProperties() //      
function getfileproperties() //    ,        

// good
super_class.php

for ($i = 0; $i < 10; $i++)
$buffer
$group_id
$last_city

MY_CONSTANT
NEWLINE
SUPER_CLASS_VERSION

class SuperClass

function getFileProperties()
==文法:
HTMLに埋め込まれたPHPコードについては、if、for、foreach、whileなどのコードブロックに対して、if:…endifを採用する.for:...endfor;foreach:...endforeach;とwhile:...endwhile;メソッドブロック

...
<?php if ($user->isLoggedIn()): // checking logged in ?>
<!-- HTML goes here. -->
<?php endif; // end checking logged in ?>

<?php foreach ($users as $user): // loop users ?>
<!-- HTML goes here. -->
<?php endforeach; // end loop users ?>
...
==コメント:
*ドキュメントブロックはphpDockmentorフォーマットと互換性が必要です.参照してください.
http://phpdoc.org/
*余計な意見は避ける

/**
 *         
 */
class Controller {
    private static $instance;

    public function __construct()  {
        ...
    }

    /**
     *       
     */
    public static function &get_instance() {
        ...
    }

/* End of file controller.php */
==その他:
*コード保持が簡単
*一貫性を保つ
参考:CodeIgniter、ZendFraamework、Wordpressなど
http://codeigniter.com/user_guide/general/style guide.
http://framework.zend.com/manual/zh/coding-standard.coding-style.html
http://codex.wordpress.org/WordPress_Coding.Standards.
その他
Github
https://github.com/styleguide
HTML/CSSコードスタイル(英語)
http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml
Javascriptコードスタイル(英語)
http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
Rubyスタイル参照(英語)
https://github.com/chneukirchen/styleguide/blob/master/RUBY-STYLE