php 代码混淆为什么我们要培养自己的编码规范?(图)php源码混淆类加密
2022-05-02
我们为什么要培养自己的编码标准?
当我们编写代码时,一个好的编码标准可以给我们带来很多意想不到的效果。至少有以下好处:
1、提高我们的编码效率。整齐统一的代码方便我们复制粘贴!
2、提高代码可读性。
3、展示我们的专业知识。别人看了我们的代码,发现整个代码的编写过程整齐划一,瞬间就上去了!
4、便于团队合作。大家都用同一个规范,这样就省去了各种写法,协调一致!
编码规范由代码规范和注释规范两大块组成
其实我们写的php脚本其实是由两部分组成,分别是代码的编写和代码的注解!不同的框架,甚至不同的公司,在这方面都会有不同的看法。这就是刚才所说的,只是对自己的写作规范的一个总结!希望对其他朋友有所启发
1、代码编写规范
文件夹命名:
对同一文件夹使用小写字母。比如存放控制器的文件夹可以直接命名为
文件命名:
如果是文件,那么文件的命名要保持同名一致,统一使用大驼峰大小写。如..php,对应的类名是,
如果是常用的工具脚本,那么统一使用小驼峰案例,比如.php
类名的命名:
同类名使用大驼峰,类
方法名命名:
统一使用小驼峰格,一般用动词+秩的形式来描述方法的功能,比如发送短信。
在面向对象中,遵循相同的规则,但有一些不同:
public getUserName() protected _getTotalAmount() private _setBlanceAmount()
变量命名约定:
关于变量,我们需要多说几句:
1、无论是面向对象还是非面向对象的语法网站建设,变量都统一使用小驼峰式,如:$。
但是在面向对象中就不一样了,当 , , , 或属性前加 _ 作为区分
public $startPosition = 1; protected $_salaryAmount =1000; private $_sex = 'formale';
2、如果是常量,统一使用大写,下划线分隔。
define('CURRENT_SCRIPT', 'index.php'); const TRANSACTION_TYPE = 'income';
3、全局变量,大驼峰大小写,前缀_,所有单词首字母大写。因为知道变量的作用域很重要,所以局部变量和全局变量要分清楚!
$;
$;
缩进
关于编码的缩进,我们统一使用制表符缩进!有人可能会问,为什么空格缩进不适用?
原因很简单php 代码混淆,大部分编辑器都支持制表符等于多少个空格,使用空格不是必须的!
计算符号
所有二元运算符都应该在前面和前面加空格
$name = 'zero'; $age > 18 ? 'adult' : 'children';
通用过程报表规划
我们同意所有流程语句的大括号都在单独的行上。原因:如果遇到比较复杂的业务逻辑,会有很多花括号的嵌套,所以我们会混淆对应的花括号!
1、分支声明
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、循环语句
while($condition) { statesments......; } foreach($arrayList as $arrayKey => $arrayItem) { states......; } do { statements......; } while($condition) for($start; condition; changenumber) { statements......; }
2、评论书写规范
很多人说好的代码不需要注释。其实我个人认为这是一句废话(或许他是对的php 代码混淆,除非他是整个团队中唯一的一个,他什么都做,不需要看别人的代码)。
个人观点是:多写点评论,不管是对团队其他人还是自己,都很友好!
根据个人经验,注解至少有以下功能:
1、有助于提高代码的可读性,毕竟看你的评论比看你的代码容易多了!
2、非常适合规划自己的代码布局!这样做的原因是因为它与代码注释的类型有关。“有利于代码的布局”,这种东西好像有点悬,光说是看不懂,需要实例来支持!
3、因为我们的注解规范是符合要求的,所以这个工具还可以生成代码的大致描述,相当于一本说明书!
代码注释的类型
1、屏蔽评论
块评论,我觉得主要用在三个地方。php脚本的描述,一个大功能模块的描述,当注释不能写在一行的时候,也应该放在块注释中
2、行评论
行评论,我个人认为他与块评论一起工作!一般用来描述一个大功能模块的具体细节!
实际案例
关于语法的具体使用细节,这里就不多说了。官网说的再清楚不过了。
从上面的例子可以看出代码的布局大致如何,但是在实践中还是需要慢慢摸索
以下是一些php编程规范供大家参考。
一、文件标签:
1.所有 php 文件都标有完整的 php 标签。不推荐使用短标签(短标签容易与xml混淆,php从5.4开始默认不支持短标签)。
2.对于 php-only 代码文件,建议在末尾省略 '?>'。这是为了防止多余的空格或其他字符影响代码。
二、文件和目录命名
1.程序文件名和目录名用有意义的英文命名,不要使用拼音和无意义的字母,只允许字母、数字、下划线和下划线,必须以'.php'结尾(模板文件除外),在多个单词之间使用驼峰式大小写。
示例: //该类统一采用:..php
//接口统一采用:..php
//其他按自己的方式:.{}.php
三、文件目录结构
标准化的目录结构便于团队协作开发和后期维护。
--app //独立应用
—— //单个类文件,共享类文件
--conf/inc //配置文件或目录
--data //数据文件或目录
--doc //程序相关文档
-- //
—— //所有图片文件存放路径
——css //css文件
——js //js文件
——lib //共享类库
—— //模板文件
——tmp //临时文件目录
-- //缓存文件
- //文档
—— //编译后的模板文件
——
- //上传文件
—— //后台管理文件目录
四、 命名约定
1.变量命名:PHP 中的变量区分大小写。有效的变量名称以数字、字母或下划线开头,后跟任意数量的字母、数字和下划线。
a) 程序整体采用驼峰式命名,以小写字母开头,名称要有意义。( ())
b) PHP 全局变量键值两边都有'_',中间用驼峰命名。($[''])
c) 普通变量整体采用驼峰式,建议在变量前加前缀表示类型。不确定类型以大写字符开头。
d) 函数名称应尽可能有意义并尽可能缩写。
2.类和接口命名:
a) 以大写字母开头。
b) 由多个单词组成的变量名,单词之间没有空格,每个单词的首字母大写。
c) 类名与类文件名一致。
d) 程序中的所有类名都是唯一的。
e) 抽象类应以 .
接口命名规则:
i) 采用与类相同的命名规则,但在其名称前添加“i”字符网站模板,表示接口。
ii) 尽量使其与实现它的类名保持一致。
3.数据库命名:在数据库相关的命名中,不会出现大写。
a) 所有表名都使用小写字母。
b) 表名使用相同的前缀,且前缀不能为空。
c) 对于由多个单词组成的表名,使用“_”间隔。
d) 表字段命名规则。
i) 使用全部小写字母。
ii) 多个单词不使用下划线分隔。
iii) 用表名的第一个字母为常用字段添加前缀。
iv) 避免使用关键字和保留字。
五、注解规范
1.程序注释:写在代码前面而不是后面,单行代码按自定义写在代码末尾;大段注释采用/**/的形式,通常在文件或函数的顶部,'//在代码内部使用';评论不宜过多;代码注释应该描述原因而不是什么,并向代码阅读者提供最重要的信息。
2.文件注释:文件注释一般放在文件顶部,包括程序描述、作者、项目名称、文件名、时间日期、版本信息,以及重要的使用说明(类调用、注意事项, ETC。) 。版本更改应修改版本号并添加注释。
3.类和接口注解:一般来说,一个文件只包含一个类。
4.方法和函数注解:方法和函数注解是前面写的,通常需要标明信息的主要可见性、参数类型和返回值类型。
/**
* 连接数据库
* @$ 数据库服务器地址
* @$ 数据库用户名
* @$ 数据库密码
*/
六、代码风格
1.缩进和空格:使用4个空格作为缩进,不要使用Tab键;分配变量时,等号两边要留空格。($url = '$_GET['url']';)
2.语句换行:尽量保证一行程序语句是一个句子;尽量不要让一行代码过长,80个字符以内;如果一行代码过长,请使用类似'.='的方法换行; 对数据库的SQL语句进行操作时,尽量不要在函数中写SQL语句,而是先用变量定义SQL语句,然后在执行操作的函数中调用定义的变量。
3.更好的习惯:在你的代码中使用下面列出的方法让你的代码更优雅。
1):使用php中已经存在的常量,而不是自己定义。
示例://换行符
回声 $msg."\r\n";
回声$味精,;
它是php中预定义的常量,表示一行的结束。根据所使用的系统,代码更具可移植性。
2):在 echo 中使用逗号作为连接符比使用 '.' 更美观。作为连接器代码。
3):单引号比双引号效率高,但在用法上有区别。学习使用函数。
示例://回声
echo '每个'.$.' 大约有 '.($avg).'';
//
$ = '每个 %s 有超过 $d 个学生';
($,$,$平均);
4) : 详细评论
5):不要滥用语法糖。句法糖是一种语言中的一条潜规则,即一种不具有普遍代表性的语法。
举两个例子,如何写出好的代码
最经典的算法,献给面试路上的你
如果您现在正在面试 PHP,请查看基本面试问题