当前位置: 首页 > news >正文

php中类文件名的命名的规则是什么

php中类文件名的命名的规则是什么

一、总结

一句话总结:类库文件(工具类)类文件都是以.class.php为后缀。

 

1、类的方法和属性的命名规则是怎样的?

都是小驼峰法

  • 方法的命名使用驼峰法,并且首字母小写e.g.getUserName小驼峰
  • 属性命名使用驼峰法,并且首字母小写e.g. table Name 变量命名(但全局变量用大驼峰,前缀加上“-”)

 

2、函数和方法的命名的区别是什么?

函数的命名使用小写字母和下划线的方式,例如 get_client_ip

方法的命名使用驼峰法,并且首字母小写e.g.getUserName小驼峰

 

3、命名中哪些部分使用全小写?

文件名,数据库名(表名),配置文件名

 

 

二、PHP类名和方法名 命名规范

  • 类库文件(工具类)类文件都是以.class.php为后缀,驼峰法命名 e.g.DbMysql.class.php
  • 函数/配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求),小驼峰e.g. common.php
  • 确保文件的命名和调用大小写一致,在类Unix系统上面,对大小写是敏感的
  • 类名和文件名一致(大小写一致) 大写字母开头
  • 函数的命名使用小写字母和下划线的方式
  • Action控制器类似Action为后缀,如UserAction
  • 模型类似Model为后缀,如UserModel
  • 方法的命名使用驼峰法,并且首字母小写e.g.getUserName小驼峰
  • 属性命名使用驼峰法,并且首字母小写e.g. table Name 变量命名(但全局变量用大驼峰,前缀加上“-”)
  • 以双下划线“__”打头的函数或方法作为魔法方法
  • 常量以大写字母和下划线命名 e.g. HAS_ONE
  • 配置参数以大写字母和下划线命名e.g. HTML_CACHE_ON
  • 数据表和字段采用小写下划线方式命名 e.g. think_user
  • 文件夹统一使用小写字母
  • 流程语句规范:括号单独占一行
  • 注:类名无“()”,函数名才有()

 

 参考:PHP类名和方法名 命名规范 - CSDN博客
https://blog.csdn.net/Gaby_JJ/article/details/78318631

 

 

三、PHP代码、文件命名规范

命名规范

开发的过程中应该尽量遵循下列命名规范:

  • 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php
  • 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php
  • 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
  • 类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是UserController.class.php, InfoModel类的文件名是InfoModel.class.php, 并且不同的类库的类命名有一定的规范;
  • 函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);
  • 函数的命名使用小写字母和下划线的方式,例如 get_client_ip
  • 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName_parseType,通常下划线开头的方法属于私有方法;
  • 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName_instance,通常下划线开头的属性属于私有属性;
  • 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload
  • 常量以大写字母和下划线命名,例如 HAS_ONE MANY_TO_MANY
  • 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON
  • 语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 _CLASS_NOT_EXIST_
  • 对变量的命名没有强制的规范,可以根据团队规范来进行;
  • ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);
  • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。

流程语句规范

所有流程语句的花括号都单独占据一行。理由:如果遇到较为复杂的业务逻辑,花括号会出现很多的嵌套,这样一来我们会混淆个个对应的花括号!

1、分支语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if ( $age >= 18 && $age <= 30)
{
   echo 'young man' ;
}
else if ( $age > 30 && $age <= 60)
{
   echo 'middle aged' ;
}
else
{
   echo 'old man' ;
}
 
//下面这段代码高手我们一个问题,在if语句中,即使在可以不要花括号的情况下,花括号也是要写上的
if ( $age > 60)
{
   echo 'I am very old' ;
}
 
switch ( $status )
{
   case 'forbiden'
     echo 'login forbidden' ;
     break ;
     
   case 'normal' :
     echo 'login in' ;
     break ;
     
   default :
     echo 'status is wrong'
     break ;
}

2、循环语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while ( $condition )
{
   statesments......;
}
 
foreach ( $arrayList as $arrayKey => $arrayItem )
{
   states......;
}
do
{
   statements......; 
}
while ( $condition )
 
 
for ( $start ; condition; changenumber)
{
   statements......;
}
 

 

总体需遵规则

开发的过程中,遵循以下规则,会让你的开发变得更轻松:

  • 遵循框架的命名规范和目录规范;
  • 开发过程中尽量开启调试模式,及早发现问题;
  • 养成使用I函数获取输入变量的好习惯;
  • 更新或者环境改变后遇到问题首要问题是清空Runtime目录;
 
参考:PHP代码、文件命名规范 - 陶潜别梦 - 博客园
https://www.cnblogs.com/dengcw/p/5985608.html
 
 

 

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/9417604.html

相关文章:

  • Vue组件定义
  • SQL Server删除distribution数据库
  • 数据驱动的数字化转型:从流程驱动到数据驱动
  • vuex简单总结
  • 两种方式 : VS 如何调试dll中的源码
  • 第四课:Yarn和Map/Reduce配置启动和原理讲解
  • 8.6 11.25-11.27
  • python学习之老男孩python全栈第九期_数据库day001 -- 作业
  • php计算 处理丢失精度问题 保留小数
  • 古诗文网站的网络爬虫编写方式,通过网络爬虫抓去内容
  • MySQL基础知识之增删改查
  • Kotlin进阶(二)中缀、内联、高阶函数
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 【MySQL 5.7参考手册】8.14.2 General Thread States
  • 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Facebook AccountKit 接入的坑点
  • gulp 教程
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • javascript 总结(常用工具类的封装)
  • java正则表式的使用
  • magento2项目上线注意事项
  • MaxCompute访问TableStore(OTS) 数据
  • React-Native - 收藏集 - 掘金
  • redis学习笔记(三):列表、集合、有序集合
  • 记一次和乔布斯合作最难忘的经历
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端_面试
  • 山寨一个 Promise
  • 消息队列系列二(IOT中消息队列的应用)
  • 一道闭包题引发的思考
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 最简单的无缝轮播
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.each()与$(selector).each()
  • (16)Reactor的测试——响应式Spring的道法术器
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ***原理与防范
  • *2 echo、printf、mkdir命令的应用
  • .Net Core和.Net Standard直观理解
  • .NET 解决重复提交问题
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net打印*三角形
  • .net流程开发平台的一些难点(1)
  • @Async注解的坑,小心
  • @Bean注解详解
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [17]JAVAEE-HTTP协议