登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 798|回复: 0

PHP开辟编码规范特么要留意

[复制链接]

364

主题

14

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2018-4-6 00:23:09 | 显示全部楼层 |阅读模式 来自 重庆
i9pKs3SH4ipIdzsE.jpg

点击上面关注我 fJ76ZxJW7aWWzdWj.jpg 关注我哟

小编 隔天推送php教程php本领php视频教程MySQL笔试题等诸多优质内容,最接地气、重服务的当地微信平台!关注我们妥妥没错!
(商务互助接洽QQ号:2230304070


文章来自:博客

http://www.jb51.net/article/72757.htm



阅读文章之前来一套视频教程


  PHP加密技能视频教程

链接:http://pan.baidu.com/s/150RHZ73weP0euD-ZQ8rEgg 
暗码:在此公众号复兴“0331”



下面是根据履历整理的PHP编码规范,可以用作给各人的范例和参考,根据必要举行弃取和修改!
(大概最新的一些php5的规范不敷完备,以后有时机保持更新!)
目次
1 编写目标
2 团体要求
3 安全规范
3.1 包罗文件
3.1.1 定名规则
3.1.2 存放规则
3.2 安全规则
3.3 一些针对PHP的规则
3.4 别的处置惩罚规则
3.4.1 对输入参数值举行转义处置惩罚
3.4.2 操纵大HTML文本


4 编码规范
4.1 定名规范
4.1.1 变量定名
4.1.2 类
4.1.3 方法或函数
4.1.4 缩写词
4.1.5 数据库表名
4.1.6 数据库字段
4.2 誊写规则
4.2.1 代码缩进
4.2.2 大括号{ }誊写规则
4.2.3 小括号( )和函数、关键词等
4.2.4 =符号誊写
4.2.5 if else swith for while等誊写
4.2.6 类的构造函数
4.2.7 语句断行, 每行控制在80个字符以内
4.2.8 不要不可思议的数字
4.2.9 true/false和0/1判定
4.2.10 制止嵌入式赋值
4.2.11 错误返回检测规则
4.3 步伐解释
4.3.1 步伐头解释块
4.3.2 类的解释
4.3.3 函数和方法的解释
4.3.4 变量大概语句解释
4.4 其他规范(发起)
4.4.1 php代码标志
4.4.2 步伐文件名、目次名
4.4.3 PHP项目通常的文件目次布局
4.4.4 PHP和HTML代码的分离题目
4.4.5 PHP项目开辟中的步伐逻辑布局
5 特定情况下PHP编码特别规范
5.1 变量界说
5.2 引用的利用
5.3 变量的输入输出



1 编写目标
为了更好的进步技能部的工作服从,包管开辟的有用性和公道性,并可最大水平的进步步伐代码的可读性和可重复使用性,指定此规范。开辟团队根据本身的现实环境,可以对本规范举行增补或淘汰。

2 团体要求
技能部php开辟规范将参照PEAR的规范,根本接纳PEAR指定的规范,在其底子上增长、修改或删除部门得当详细开辟情况的规范。本规范只针对PHP开辟过程中编码的规范,对于PHP开辟项目中文件、目次、数据库等方面的规范,将不重点涉及。
本规范包罗了PHP开辟时步伐编码中定名规范、代码缩进规则、控制布局、函数调用、函数界说、解释、包罗代码、PHP标志、文件头的解释块、CVS标志、URL样例、常量定名等方面的规则。

3 安全规范
3.1 包罗文件
3.1.1 定名规则
提取出来具有通用函数的包罗文件,文件后缀以.inc来定名,表明这是一个包罗文件。
假如有多个.inc文件必要包罗多页面,请把全部.inc文件封装在一个文件内里,详细到页面只必要包换一个.inc文件就可以了
如:xxx_session.inc
xxx_comm..inc
xxx_setting.inc
mysql_db.inc

把以上文件以一下方式,封装在xxx.basic.inc文件内里
require_once(”xxx_session.inc”);
require_once(”xxx_comm.inc”);
require_once(”xxx_setting.inc”);
require_once(”mysql_db.inc”);

注:是否必要封装到一个文件,视环境而定,假如每个inc的功能是分散到差别的页面利用的话,就不发起封装。
3.1.2 存放规则
一样平常包罗文件不必要直接袒露给用户,以是应该放在 Web Server访问不到的目次,制止由于设置题目而泄漏设置信息。

3.2 安全规则
请参考产物安全查抄表。

输入和输出
查抄是否做了HTML代码的过滤
大概出现的题目:假如有人输入恶意的HTML代码,会导致盗取cookie, 产生恶意登录表单,和粉碎网站
查抄变量做数据库操纵之前是否做了escape
大概出现的题目:假如一个要写入查询语句的字符串变量包罗了某些特别的字符,好比引号(’ ,”)大概分号(;) 大概造成实行了预期之外的操纵。
发起接纳的方法:利用mysql_escape_string() 或实现雷同功能的函数。
查抄输入数值的正当性
大概出现的题目:非常的数值会造成题目。假如对输入的数值不做查抄会造成不正当的大概错误的数据存入UDB、存入别的的数据库大概导致料想之外的步伐操纵发生。
举例:
假如步伐以用户输入的参数值做为文件名,举行文件操纵,恶意输入体系文件名会造成体系损毁。
核实对cookie的利用以及对用户数据的处置惩罚
大概出现的题目:不精确的cookie利用大概造成用户数据走漏
访问控制
对内部利用的产物大概供互助方利用的产物,要思量增长访问控制
logs
确保用户的保密信息没有记在log中(比方:用户的暗码)
确保对关键的用户操纵生存了完备的用户访问记载
https
对敏感数据的传输要接纳https

3.3 一些针对PHP的规则
设置 register_globals = off (Y!PHP 已经克制了register_globals,假如你利用Y!PHP可以不思量这项设置)
设置 error_reporting = E_ALL (Y!PHP 的缺省设置),而且要修正全部的error和warning
将现实的操纵放在被引用的文件中。把引用文件放到不可以被直接欣赏的目次下

3.4 别的处置惩罚规则
3.4.1 对输入参数值举行转义处置惩罚
页面接到参数必要SQL操纵,这时间必要做转义,尤其必要留意”;”。
如:$a = ” Let’s go ” ;
$sql = “Insert into tmp(col) values(’$a’)” ;
这种环境出现错误的不确定性。

3.4.2 操纵大HTML文本
许多时间必要存放一大段HTML文本供页面利用,象用户定制页头页脚等。
必要剔除脚本标志,制止实行恶意php代码。
转换”“号,包管代码完备。

4 编码规范
4.1 定名规范
订定同一的定名规范对于项目开辟来说非常紧张,不光可以养成步伐员一个精良的开辟风俗,还能增长步伐的可读性、可移植性和可重用性,还能很好的进步项目开辟的服从。

4.1.1 变量定名
变量定名分为平凡变量、静态变量、局部变量、全局变量、Session变量等方面的定名规则。

4.1.1.1 平凡变量
平凡变量定名遵照以下规则:
a. 全部字母都利用小写;
b. 对于一个变量利用多个单词的,利用’_'作为每个词的隔断。
比方:$base_dir、$red_rose_price等

4.1.1.2 静态变量
静态变量定名遵照以下规则:
a. 静态变量利用小写的s_开头;
b. 静态变量全部字母都利用小写;
c. 多个单词构成的变量名利用’_'作为每个词的隔断。
例子:$s_base_dir、$s_red_rose_prise等。

4.1.1.3 局部变量
局部变量定名遵照以下规则:
a. 全部字母利用小写;
b. 变量利用’_'开头;
c. 多个单词构成的局部变量名利用’_'作为每个词间的隔断。
例子:$_base_dir、$_red_rose_price等。

4.1.1.4 全局变量
全局变量应该带前缀’g',知道一个变量的作用域黑白常紧张的。
比方
global $gLOG_LEVEL;
global $gLOG_PATH;

4.1.1.5 全局常量
全局变量定名遵照以下规则:
a. 全部字母利用大写
b. 全局变量多个单词间利用’_'作为隔断。
例子:$BASE_DIR、$RED_ROSE_PRICE等。

4.1.1.6 session变量
session变量定名遵照以下规则:
a. 全部字母利用大写;
b. session变量名利用’S_’开头;
c. 多个单词间利用’_'隔断。
例子:$S_BASE_DIR、$S_RED_ROSE_PRICE等。

4.1.2 类
php中类定名遵照以下规则:
a. 以大写字母开头;
b. 多个单词构成的变量名,单词之间不消隔断,各个单词首字母大写。
例子:class MyClass 或class DbOracle等。

4.1.3 方法或函数
方法或函数定名遵照以下规则:
a. 首字母小写;
b. 多个单词间不利用隔断,除第一个单词外,其他单词首字母大写。
例子:function myFunction ()或function myDbOracle ()等。

4.1.4 缩写词
当变量名大概其他定名中碰到缩写词时,参照详细的定名规则,而不接纳缩写词原来的全部大写的方式。
例子:function myPear(不是myPEAR) functio getHtmlSource(不是getHTMLSource)。

4.1.5 数据库表名
数据库表名定名遵照以下规范:
a. 表名均利用小写字母;
b. 对于平凡数据表,利用_t末端;
c. 对于视图,利用_v末端;
d. 对于多个单词构成的表名,利用_隔断;
例子:user_info_t和book_store_v等

4.1.6 数据库字段
数据库字段定名遵照以下规范:
a. 全部利用小写;
b. 多个单词间利用_隔断。
例子:user_name、rose_price等。

4.2 誊写规则
誊写规则是指在编写php步伐时,代码誊写的规则,包罗缩进、布局控制等方面规范:


<span style="font-size: 12px;">4.2.1 代码缩进
在誊写代码的时间,必须留意代码的缩进规则,我们规定代码缩进规则如下:
a. 利用4个空格作为缩进,而不利用tab缩进(对于ultraedit,可以举行预先设置)
例子:
for ( $i=0;$i




上一篇:金三银四跳槽季,口试必备之PHP学习!
下一篇:番外篇:php调试工具Xdebug利用教程(2018年,2.6版,云客原创) ...
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-4-29 10:30 , Processed in 0.087322 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表