Skip to content

Latest commit

 

History

History
144 lines (118 loc) · 3.65 KB

php书写规范.md

File metadata and controls

144 lines (118 loc) · 3.65 KB

PHP书写规范

一. 通用 1. 缩进2个空格(推荐2个, 也可4个) 2. 语义化, 看到名字,就知道什么意思 3. 通用前缀 + is表示是否 + get表示读取 + set表示写 is后面优先跟形容词,二不是名词 4. 单数和复数 + getUser + getUsers + getFriendsName 5. 冗余后缀 尽量不使用data、list、info后缀,除非特殊情况。如: + getElementsByTagName 而不是 getElementsInfoByTagName + getUser 而不是 getUserInfo 或 getUserData 6. 使用URI, 而不是URL

二. 类名与类文件 1. 类名:首字大写+驼峰 2. 类文件:Users.class.php 或 UsersController.class.php(ThinkPHP规范) 3. 非类文件: 全部小写,下划线分隔 get_user.php 4. 目录名:全部小写,下划线分隔

三. 函数名 1. 小写字母开头,驼峰命名,如 function addBlog() 2. 优先使用动词,如 editBlog 而不是 blogEdit,不赞成 json_encode 这样的写法 3. 两个函数间要空一行,函数按英文字母排序 4. 注释,如:

    类注释
    /**
     * XXXX 的 YYYY
     * @author Zix
     * @created 2015-11-11
     */
    
    函数注释
    /**
     * 根据条件查询用户
     * @param array $config array( //查询条件
     *   "id" => "" //id
     *   //...
     * )
     * @return array
     */
    function getUsers( $config ) {
      //查询默认值
      $default = array(
        'limit' => 0 ,
        'page' => 1 ,
        'page_size' => 10 ,
      );

      //合并查询条件
      extent( &$config , $default );
      try {
        $result = $this->db->where( $where )->select();
        if ( $result === false ) {
          throw new Exception('sql执行失败' . $this->db->_sql() );
        }
        return ajax_return( '200' , $result );
      } catch( $e ) {
        return ajax_return( '400' , $e->getMessage() );
      }
      
    }

四. URI 根据rfc1034国际标准的规定,域名中禁止出现下划线“”,域名不区分大小写。 1. URI中使用全小写, GET的name为小写(非驼峰) 但是GET值除外 2. URI中优先使用减号"-", 而不是下划线"" 如: - http://example.com/?user_id=123 - http://example.com/1-2-2

五. 变量 1. 全部小写,下划线分隔,如:$user_id 2. 不要使用 $_PUT $_DELETE

六. 常量 全大写, 下划线分隔 const PAY_SUCCESS = 20 ; const FLAG = 'ok'

七. 大括号 function getUser() { //... }

if( !empty( $name ) ) {
  //...
}

switch (...) {
  case 1:
    //...
    break;
  case 2:
    //...
    break;
  default:
}

$user = array(
  'id" => '123',
  'name' => 'user1',
  'email' => '[email protected]',
);

$users_id = array('23','12','24');//确定

正确:
if( !empty($name) ) {
    doSomething();
}
错误:
if(!empty($name))
    doSomething();

八、单引号和双引号 优先使用单引号! echo 'name is:' . $name . '.' . "\n"; //注意 "\n" echo "name is: $name . \n"; echo "name is: {$data['name']} . \n"

九. 表达式 $name = 'Jack'; //等号两边留1个空格 !empty( $name ) ? $name : "noname" ; // ? , : 和 ; 两边留1个空格 return $name || 'noname' ; function($queryStr , $username){ //注意() 和 ,

}

十. 每行长度 每行代码长度最好不要超过 80 个字符 ,可以打开 IDE 标尺(或辅助线)