黑马程序员技术交流社区

标题: PHP程序员必知的文件名命名规范 [打印本页]

作者: huawei    时间: 2016-10-7 14:03
标题: PHP程序员必知的文件名命名规范
本帖最后由 huawei 于 2017-3-5 11:06 编辑

PHP程序员必知的文件名命名规范


       编码规则采用常用规则就可,具体说哪一个好,哪一个不好也是不科学的,每种风格都有各自的好处,这得看系统,代码怎样容易阅读这才是王道。

最基本要求

       以标准计算机英文为蓝本,杜绝一切拼音、或拼音英文混杂的命名方式。英语不好者,请借助网络上的翻译工具。

一、变量命名

      (1)使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写。如:
        $repeatCount = '';
        $delUserSql = '';
      
     2变量命名如要用缩写,只能使用项目中有据可查的英文缩写方式,例如可以使用$data而不可使用$data1、$data2这样容易产生混淆的形式,应当使用$articleData、$userData这样一目了然容易理解的形式。

     (3)除非特殊情况,一般不推荐使用下划线。如:$repeat_count = '';(不推荐)

二、数组变量命名

       使用英文名词、动词,以大写字母作为单词的分隔,其他的字母均使用小写,单词的首个字母使用小写,不使用下划线,以字符串 Array 为后缀,例:      $scopeArray = array(); $bookIdArray = array();
       提示:
       除非特殊情况,一般不推荐使用下划线。如:$book_id_array = array();(不推荐)

三、全局变量

     全局变量应该带前缀‘g’, 使用大写字母作为词的分隔,其他的字母均使用小写。理由:知道一个变量的作用域是非常重要的。 例如: global $gLog;

四、全局常量命名
      

五、静态变量命名

   

六、函数命名

      

七、类的命名规范

八、类文件命名规范

      

九、类属性命名规范

      

十、类方法命名规范


十一、类方法参数命名

      

十二、类的实例对象的命名(对象变量命名)

      

十三、数据库命名



十四、模板文件名命名



十五、文件名的命名规范



作者: kevin_bj    时间: 2016-10-29 12:06
66666666666666666
作者: eddies    时间: 2016-11-3 10:48
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: kukulu    时间: 2016-11-12 17:49
又学习了
作者: 小小海    时间: 2016-11-14 21:52
ewuhrwiejkwq
作者: dxp    时间: 2016-11-15 17:05
好好学习,天天向上...
作者: victor_yang    时间: 2016-11-16 11:53
规范一下!谢谢
作者: eldoon    时间: 2016-11-16 14:24
全局常量命名静态变量命名
作者: jason_QS    时间: 2016-11-19 13:39
文件名命名规
作者: piliyouxia121    时间: 2016-11-28 12:18

作者: 782934029    时间: 2016-11-29 20:42
222222222222222222222222222222222222
作者: 红尘痴儿女    时间: 2016-12-4 14:12
6666666666
作者: yugiwjun    时间: 2016-12-8 13:17
111111111111
作者: 潇欢    时间: 2016-12-10 16:07
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: xw1985520    时间: 2016-12-17 17:12
kljkjhhuiuim.,mpoiup.,mpoio
作者: 肖肖肖    时间: 2016-12-18 22:27
谢谢分享!!!
作者: hp_eckj_luox    时间: 2016-12-19 13:42
PHP程序员必知的文件名命名规范
作者: VC丶万人敬仰    时间: 2017-1-4 10:10
6666666666666666
作者: 空谷幽兰318    时间: 2017-1-9 20:16
感谢分享!!!
作者: PHPjava    时间: 2017-1-21 10:44
cdcdcdcdcddddddddddddddd
作者: 1317181388    时间: 2017-2-5 09:15
感谢楼主分享
作者: heychm    时间: 2017-2-6 15:35
6666666666666
作者: sunsine    时间: 2017-2-7 12:51
学习一下

作者: fjdaslfjk    时间: 2017-2-16 14:18
PHP程序员必知的文件名命名规范
作者: 张子寒    时间: 2017-2-16 14:42
6666666666
作者: cy0413    时间: 2017-2-27 12:27
赞6666666666666666个
作者: cy0413    时间: 2017-2-27 12:28
赞6666666666666666个
作者: vcflyfeel    时间: 2017-3-7 18:41
文件命名你知道
作者: vcflyfeel    时间: 2017-3-7 18:41
文件命名你知道
作者: Overflow    时间: 2017-3-12 17:38
11111111111111111111111
作者: zengrenbin    时间: 2017-3-21 21:08
111111111111111
作者: 今天吃什么    时间: 2017-5-4 16:23
紫薯布丁。。。
作者: davidphp    时间: 2017-5-11 15:55
非常好的规范,感谢!
作者: worldtongf    时间: 2017-5-21 00:52
PHP性能如何实现全面优化?不懂,看这贴就够了!



        性能是网站运行是否良好的关键因素, 网站的性能与效率影响着公司的运营成本及长远发展,编写出高质高效的代码是我们每个开发人员必备的素质,也是我们良好的职业素养。

      如何优化PHP性能呢?

一、变量(重要)      

       1)、 变量大小,注意变量大小是节约内存的最有效手段,对于来自用户表单、数据库和文件缓存的数据都需要控制变量的大小。 因为cpu要处理的数据是来源于内存
       2)、 变量有效期,使用unset()函数注销不需要的变量是一种良好的习惯,将一些不需要的变量立即注销可提高内存的使用率。
       3)、 复制变量,尽量不要复制变量,否则就会带来1倍的内存消耗,即使复制变量也应该要立即注销原有变量。
       4)、 变量类型,初始化变量请注意其变量类型,一个变量在执行过程中最好只有一种类型状态。对于数组变量,请初始化声明,如下: $a = array();
       5)、 临时变量,是处理业务逻辑的临时存储,这些都是需要消耗内存的。如果临时变量使用结束请立即注销,特别是在一些过程式代码的执行流程中,对于一些函数,如果业务非常复杂,同样需要立即注销临时变量
       6)、 静态变量,对于一些需要由复杂业务产生的变量,如果在程序的执行过程中多次产生并使用,可考虑使用静态变量,减少程序的cpu执行次数
       7)、 变量的性能:局部变量>全局变量>类属性>未定义的变量。

二、循环(重要)

       1)、 尽量减少循环的次数。
       2)、 尽量减少循环的潜逃的层次,不要超过三层。
       3)、 避免在循环内有过多的业务逻辑。
       4)、 不要循环包含文件
       5)、 不要循环执行数据库操作。
       6)、 优先使用foreach,它比for/while效率高
       7)、 不要把 count/strlen/sizeof 放到 for 循环的条件语句中 For($i=0,$count=count($array);$i<$count;$i++){} 不要使用for($i=0;$i<count($array);$i++){};
       8)、 for($i=$total;$i>0;$i–){}性能好于for($i=0;$i<$total;$–){}
       9)、 保持循环体内的业务逻辑清晰

三、 函数(重要)

   
本帖隐藏的内容

1)、 函数职责清晰,一个函数只干一件事,不要杂揉过多的业务逻辑
      2)、 函数代码体不要超过20行,反之,考虑拆分。
      3)、 优先使用php内置函数
      4)、 常量与函数同时能干一件事,优先使用常量。
               例如:
                  · phpversion() < PHP_VERSION
                  · get_class() < __CLASS__
                  · is_null() < NULL ===
      5)、 echo 的性能好于print,输入多个变量的时候用echo $str,$str1,不用.连接符
      6)、 $_SERVER[REQUEST_TIME]替换time();
      7)、 字符串替换strtr()->str_replace()->preg_replace()->epreg();
      8)、 发挥trim最大功效,替换substr。$filepath=trim($filename,’/’).’/’;
      9)、Isset/empty 虽然两个函数功能有所差异,但在同样的情况下推荐使用 empty()
    10)、isfile/file_exist 两个函数的功能有所不同,file_exist既可判断文件是否存在,也可以判断目录是否存在,在同样的情况下推荐使用is_file



四、文件(重要)

本帖隐藏的内容

1)、 减少文件包含数,减少磁盘 IO
       2)、 使用完整路径,或者容易转换的相对路径。避免在 include_path 查找
       3)、 文件的代码行数不要超过 2000 行
       4)、Require_once/include_once 效率低于 require/include, 需要额外的去查看系统是否已经调用过这个文件. 因为它们在一个 opcode 缓存下的调用非常慢
       5)、程序执行文件用 requie/require_once,缓存文件用include/include_once。Include 效率好于 require
       6)、优化 spl 中的文件自动加载机制,可参靠 yii
       7)、类库文件加载,是否考虑类是否已经实例化,可考虑采用设计模式之单例模式
       8)、文件读写的并发性



五、面向对象(重要)

本帖隐藏的内容

1)、 控制实例的创建的数量
       2)、 优先使用常量、类常量
       3)、 优先例用静态变量,静态属性
       4)、 类的结构合理
       5)、 面象接口编程
       6)、 封装变化点
       7)、 依赖于抽象,不依赖于细节
       8)、 优先使用静态成员
       9)、 类的接口清晰稳定,类的职责单一,类与类的通信合理
     10)、 使用常量的好处 编译时解析,没有额外开销 杂凑表更小,所以内部查找更快 类常量仅存在于特定「命名空间」,所以杂凑名更短 代码更干净,使除错更方便



六、字符串

        1)、 用单引号替代双引号引用字符串;避免检索字符串中的变量

七、运算

       1)、 用 i+=1 代替i=i+1。符合c/c++的习惯,效率还高
       2)、 ++$i 的效率高于++$i,–$i 同理[/hide]

八、数组

      1)、 多维数组尽量不要循环嵌套赋值;
      2)、 使用$array[‘name’]方式访问数组,禁止$array[name]/$array[“name”]

九、判断(重要)

本帖隐藏的内容

1)、 逻辑判断请优先使用switch 的方式,对于业务逻辑相对较多的情况请选择if/else,提高代码的可读性
     2)、 尽量控制if/else判断的个数,如果太多请考虑功能优化或代码优化
     3)、 尽量使用恒等用于比较判断,恒等的效率高于等于,而且还能避免一些类型强制转换的错误
     4)、 if/else与_&&,单条语句判断请选择&&的形式, &&的效率高于if/else,如下 :
                if ($a == 1) {
                    $b = 2;
                 }
               可选择为($a == 1) && $b = 2;



十、缓存

      1)、 使用php加速器,缓冲opcode
      2)、 例用memcache/nosql
      3)、 使用内存数据库、
      4)、 使用文件缓存
      5)、 缓冲功能

十一、其它

     1)、 少用@符号,严重影响性能
     2)、 适时关闭远程资源连接如数据库,ftp、socket等,适时的清理这些资源

十二、 数据库优化(重要)

本帖隐藏的内容

1)、 合理的商业需情
     2)、 数据库 schema 架构优化
     3)、 垂直与水平分库分表
     4)、 索引优化,查询优化
     5)、 第三方开源检索工具(sphinx)
     6)、 主从数据库服务器的使用。
     详情可查看传智PHP公开视频《大型网站优化核心技术-mysql》



十三、 前端优化

     1)、合理的 html 结构
     2)、合理 html 与css 的同时,考虑 Css 设计合理,减少 http 请求
     3)、合理 html 与java script 的同时,考虑拆分是否合理,减少 http 请求
     4)、优化 java script 代码,让用户有良好的体验
     5)、根据 http 协议,优化高并发请求

十四、性能检测工具(重要)

   
本帖隐藏的内容

只要在百度上搜索“xxx如何检网站性能”即可。
     1)、Web Server
     2)、ab
     3)、http_load
     4)、PHP
     5)、apd
     6)、xdebug
     7)、Mysql
     8)、explain
     9)、profilerPHP性能如何实现全面优化?不懂,看这贴就够了!



        性能是网站运行是否良好的关键因素, 网站的性能与效率影响着公司的运营成本及长远发展,编写出高质高效的代码是我们每个开发人员必备的素质,也是我们良好的职业素养。

      如何优化PHP性能呢?

一、变量(重要)      

       1)、 变量大小,注意变量大小是节约内存的最有效手段,对于来自用户表单、数据库和文件缓存的数据都需要控制变量的大小。 因为cpu要处理的数据是来源于内存
       2)、 变量有效期,使用unset()函数注销不需要的变量是一种良好的习惯,将一些不需要的变量立即注销可提高内存的使用率。
       3)、 复制变量,尽量不要复制变量,否则就会带来1倍的内存消耗,即使复制变量也应该要立即注销原有变量。
       4)、 变量类型,初始化变量请注意其变量类型,一个变量在执行过程中最好只有一种类型状态。对于数组变量,请初始化声明,如下: $a = array();
       5)、 临时变量,是处理业务逻辑的临时存储,这些都是需要消耗内存的。如果临时变量使用结束请立即注销,特别是在一些过程式代码的执行流程中,对于一些函数,如果业务非常复杂,同样需要立即注销临时变量
       6)、 静态变量,对于一些需要由复杂业务产生的变量,如果在程序的执行过程中多次产生并使用,可考虑使用静态变量,减少程序的cpu执行次数
       7)、 变量的性能:局部变量>全局变量>类属性>未定义的变量。

二、循环(重要)

       1)、 尽量减少循环的次数。
       2)、 尽量减少循环的潜逃的层次,不要超过三层。
       3)、 避免在循环内有过多的业务逻辑。
       4)、 不要循环包含文件
       5)、 不要循环执行数据库操作。
       6)、 优先使用foreach,它比for/while效率高
       7)、 不要把 count/strlen/sizeof 放到 for 循环的条件语句中 For($i=0,$count=count($array);$i<$count;$i++){} 不要使用for($i=0;$i<count($array);$i++){};
       8)、 for($i=$total;$i>0;$i–){}性能好于for($i=0;$i<$total;$–){}
       9)、 保持循环体内的业务逻辑清晰

三、 函数(重要)

   
本帖隐藏的内容

1)、 函数职责清晰,一个函数只干一件事,不要杂揉过多的业务逻辑
      2)、 函数代码体不要超过20行,反之,考虑拆分。
      3)、 优先使用php内置函数
      4)、 常量与函数同时能干一件事,优先使用常量。
               例如:
                  · phpversion() < PHP_VERSION
                  · get_class() < __CLASS__
                  · is_null() < NULL ===
      5)、 echo 的性能好于print,输入多个变量的时候用echo $str,$str1,不用.连接符
      6)、 $_SERVER[REQUEST_TIME]替换time();
      7)、 字符串替换strtr()->str_replace()->preg_replace()->epreg();
      8)、 发挥trim最大功效,替换substr。$filepath=trim($filename,’/’).’/’;
      9)、Isset/empty 虽然两个函数功能有所差异,但在同样的情况下推荐使用 empty()
    10)、isfile/file_exist 两个函数的功能有所不同,file_exist既可判断文件是否存在,也可以判断目录是否存在,在同样的情况下推荐使用is_file



四、文件(重要)

本帖隐藏的内容

1)、 减少文件包含数,减少磁盘 IO
       2)、 使用完整路径,或者容易转换的相对路径。避免在 include_path 查找
       3)、 文件的代码行数不要超过 2000 行
       4)、Require_once/include_once 效率低于 require/include, 需要额外的去查看系统是否已经调用过这个文件. 因为它们在一个 opcode 缓存下的调用非常慢
       5)、程序执行文件用 requie/require_once,缓存文件用include/include_once。Include 效率好于 require
       6)、优化 spl 中的文件自动加载机制,可参靠 yii
       7)、类库文件加载,是否考虑类是否已经实例化,可考虑采用设计模式之单例模式
       8)、文件读写的并发性



五、面向对象(重要)

本帖隐藏的内容

1)、 控制实例的创建的数量
       2)、 优先使用常量、类常量
       3)、 优先例用静态变量,静态属性
       4)、 类的结构合理
       5)、 面象接口编程
       6)、 封装变化点
       7)、 依赖于抽象,不依赖于细节
       8)、 优先使用静态成员
       9)、 类的接口清晰稳定,类的职责单一,类与类的通信合理
     10)、 使用常量的好处 编译时解析,没有额外开销 杂凑表更小,所以内部查找更快 类常量仅存在于特定「命名空间」,所以杂凑名更短 代码更干净,使除错更方便



六、字符串

        1)、 用单引号替代双引号引用字符串;避免检索字符串中的变量

七、运算

       1)、 用 i+=1 代替i=i+1。符合c/c++的习惯,效率还高
       2)、 ++$i 的效率高于++$i,–$i 同理[/hide]

八、数组

      1)、 多维数组尽量不要循环嵌套赋值;
      2)、 使用$array[‘name’]方式访问数组,禁止$array[name]/$array[“name”]

九、判断(重要)

本帖隐藏的内容

1)、 逻辑判断请优先使用switch 的方式,对于业务逻辑相对较多的情况请选择if/else,提高代码的可读性
     2)、 尽量控制if/else判断的个数,如果太多请考虑功能优化或代码优化
     3)、 尽量使用恒等用于比较判断,恒等的效率高于等于,而且还能避免一些类型强制转换的错误
     4)、 if/else与_&&,单条语句判断请选择&&的形式, &&的效率高于if/else,如下 :
                if ($a == 1) {
                    $b = 2;
                 }
               可选择为($a == 1) && $b = 2;



十、缓存

      1)、 使用php加速器,缓冲opcode
      2)、 例用memcache/nosql
      3)、 使用内存数据库、
      4)、 使用文件缓存
      5)、 缓冲功能

十一、其它

     1)、 少用@符号,严重影响性能
     2)、 适时关闭远程资源连接如数据库,ftp、socket等,适时的清理这些资源

十二、 数据库优化(重要)

本帖隐藏的内容

1)、 合理的商业需情
     2)、 数据库 schema 架构优化
     3)、 垂直与水平分库分表
     4)、 索引优化,查询优化
     5)、 第三方开源检索工具(sphinx)
     6)、 主从数据库服务器的使用。
     详情可查看传智PHP公开视频《大型网站优化核心技术-mysql》



十三、 前端优化

     1)、合理的 html 结构
     2)、合理 html 与css 的同时,考虑 Css 设计合理,减少 http 请求
     3)、合理 html 与java script 的同时,考虑拆分是否合理,减少 http 请求
     4)、优化 java script 代码,让用户有良好的体验
     5)、根据 http 协议,优化高并发请求

十四、性能检测工具(重要)

   
本帖隐藏的内容

只要在百度上搜索“xxx如何检网站性能”即可。
     1)、Web Server
     2)、ab
     3)、http_load
     4)、PHP
     5)、apd
     6)、xdebug
     7)、Mysql
     8)、explain
     9)、profiler
作者: 瞬间回忆    时间: 2017-5-24 17:10
PHP程序员必知的文件名命名规范
作者: dongfengyuli    时间: 2017-5-29 10:00
6666666666666666值得学习。
作者: 645847022    时间: 2017-6-13 16:52
不粗,值得学习咯
作者: thinkJUN    时间: 2017-6-26 10:34
非常感谢
作者: absqiang10    时间: 2017-6-28 13:31
外网外网
作者: jessicaa    时间: 2017-7-15 16:15
33434fgfg3333
作者: 且行且珍惜1    时间: 2017-7-18 12:00
好好学习
作者: 清风月颜    时间: 2017-7-18 23:03
6666666666666
作者: wwysmile    时间: 2017-7-27 10:23
好好学习,天天向上
作者: 囧囧爱学习    时间: 2017-7-27 13:44
666666666666
作者: budebushuo2017    时间: 2017-7-27 13:46
dfssssssssssssssssssssssssssssssssssss
作者: 挨踢小子    时间: 2017-7-27 14:35
强…………………………………………………………6
作者: 1411087078    时间: 2017-8-4 12:03
44444444444444444444444444444444444444444444
作者: pykpyk    时间: 2017-8-5 09:12
66666666666666666666666
作者: hp66722667    时间: 2017-8-5 11:07
sss大的我去扫地
作者: qq280385639    时间: 2017-8-7 17:50
666666666666666666666
作者: yixiaoshell    时间: 2017-8-8 12:31
全局常量命名
作者: tjwtjw    时间: 2017-8-28 18:01
6666666666666666666666

作者: newu    时间: 2017-8-28 20:18
全局常量命名静态变量命名
作者: ccsaint73    时间: 2017-8-28 21:31
谢谢分享
作者: mgpori    时间: 2017-9-9 21:27
66666666666666666666666666666666666
作者: 蜗牛泛泛    时间: 2017-9-26 10:10
666666666666666666666
作者: 873934580    时间: 2017-9-26 11:33
xiangkankan
作者: sukid    时间: 2017-11-20 15:18
来来来~PHP程序员必知的文件名命名规范
作者: afsa    时间: 2018-3-22 09:44
看看看看看看看看看看看看看看看看
作者: 8无尾熊8    时间: 2018-3-27 14:44
学习一下,项目比较小,一直命名都不正规
作者: 琴岛家园    时间: 2018-6-27 15:56
HHHHHHHHHH好HHHHHHHHHH
作者: yuyongting2001    时间: 2018-7-5 20:58
使用大写字母作为词的分隔,其他的字母均使用小写
作者: uuuqqq    时间: 2018-10-7 07:38
不管东西咋样 还是先谢谢了

作者: ropang    时间: 2018-11-19 10:49
66666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2