PHP编码PSR-规范 让你的代码更规范

技术分享 2019年04月24日 阅读 282 我也庸俗

前言:

无论从代码的美观度还是从团队的规定,将代码写的规范美观是一个程序员的脸面,展现出一个程序员的代码情怀,也能体现出一个程序员的逼格。

当然,每个人的审美观点是不一样的,特别是php的编码规范不是太完善,不过,FIG制定的PHP规范,简称PSR,是PHP开发的事实标准,也成为每个团队制定编码规范的时候参考和遵从的标准。

我们这个《PHP编码规范》系列准备先从PSR系列的规范谈起。

目前FIG官方已制定的规范包括以下六份文件:

  1. PSR-0 (已弃用)
  2. PSR-1
  3. PSR-2
  4. PSR-2补充
  5. PSR-3
  6. PSR-4

这里我们从PSR-1基本规范开始解读。

一、PHP代码文件必须以 <?php 或 <?= 标签开始
这个规范有这么几层解读:

1、官方的写法是<?php ,建议大家别偷懒,按照这种写法来。

2、<?=这种短标签的形式,需要在php.ini中设置short_open_tag为On,php官方已不建议使用。

3、对于后封闭标签 ?>不建议使用。

二、PHP代码文件必须以不带BOM的 UTF-8 编码
所谓BOM,全称是 Byte Order Mark ,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian)。文本编辑器可以设置不使用BOM头。

三、PHP代码中应该只定义类、函数、常量等声明,或其他会产生从属效应的操作,二者只能选其一;
这句话比较拗口。先了解两个概念:声明和从属效应的操作。声明表示:一个文件中还有的类,常量和函数。从属效应的操作:是指输出、文件包含、连接外部服务,ini配置,错误和异常抛出、读写文件等。也就是说,不要将两种代码放到一个文件中。

四、命名空间以及类必须符合 PSR 的自动加载规范
每一个类是一个文件,需要有命名空间,而且必须设定一个顶级的空间名称。类名采用开头大写的驼峰命名规范,如:MyClass。

文件名和类名要一致,可以满足自动加载类的使用。

五、类中的常量所有字母都必须大写,单词间用下划线分隔;
常量需要大写,并且可以使用下划线_,进行分割,规范的如:API_URL;

六、方法名和变量名使用小写开头的驼峰命名规范
包好类里面的方法名和一般函数名,应该使用小写开头的命名规范。如:myFunction,$mySpace。

由于时间和水平有限,文章难免出现错误,请指正~

我也庸俗 我也庸俗 开发工程师@有赞科技公司

写了 159279 字,被 1 人关注,共写了 71 篇笔记

孤独了忙碌的人
推荐文章:
  • 大数据领域Flink 与 Spark之间的区别?

    学而不思则罔 思而不学则殆,2020年砥砺前行!前言大家都知道已经2020年了,也到了新的一年。作为一个主营电商的公司,年底都会很忙。所以最近的更新进度也停滞不前,本来准备大侃PHP设计模式的,但是因...

    豆浆大叔 1个月前 3 吐槽 161 围观 技术分享
  • php如何实现钩子与实践案例

    前言学而不思则罔,思而不学则殆。30则而立,头顶正则脱光!昨天晚上,突然想起了PHP中的钩子如何使用?说实话,像dz,wordpress,TP,CI框架都已经集成了Hook钩子,尽管我不怎么使用框架以...

    豆浆大叔 2个月前 0 吐槽 61 围观 技术分享
  • Linux无法显示ip地址的解决办法

    今天想趁着有时间,用虚拟机调试一下lua脚本和其他的功能,结果启动虚拟机使用xshell连接不上,然后使用终端查看IP地址无法查看到,记录一下排查错误流程。查看IP地址使用ip addr 或者 ifc...

    豆浆大叔 2个月前 0 吐槽 119 围观 技术分享
  • 高并发性能指标QPS,TPS,RT,并发数,吞吐量是指什么?

    QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系...

    豆浆大叔 2个月前 0 吐槽 259 围观 技术分享
  • 分享一些PHP常用的小算法

    下面分享一些最常见的算法,用PHP如何实现,拓展下知识面。冒泡排序function bubble_sort($arr) { $n=count($arr); for($i=0;$i<$n-1;$...

    我也庸俗 3个月前 0 吐槽 106 围观 技术分享
表情
  • [:821l1001:]
  • [:821l1002:]
  • [:821l1003:]
  • [:821l1004:]
  • [:821l1005:]
  • [:821l1006:]
  • [:821l1007:]
  • [:821l1008:]
  • [:821l1009:]
  • [:821l1010:]
  • [:821l1011:]
  • [:821l1012:]
  • [:821l1013:]
  • [:821l1014:]
  • [:821l1015:]
  • [:821l1016:]
  • [:821l1017:]
  • [:821l1018:]
  • [:821l1019:]
  • [:821l1020:]
  • [:821l1021:]
  • [:821l1022:]
  • [:821l1023:]
  • [:821l1024:]
  • [:821l1025:]
  • [:821l1026:]
  • [:821l1027:]
  • [:821l1028:]
  • [:821l1029:]
  • [:821l1030:]
  • [:821l1031:]
  • [:821l1032:]
  • [:821l1033:]
  • [:821l1034:]
  • [:821l1035:]
  • [:821l1036:]
  • [:821l1037:]
  • [:821l1038:]
  • [:821l1039:]
  • [:821l1040:]
  • [:821l1041:]
  • [:821l1042:]
  • [:821l1043:]
  • [:821l1044:]
  • [:821l1045:]
  • [:821l1046:]
  • [:821l1047:]
  • [:821l1048:]
  • [:821l1049:]
  • [:anger:]
  • [:applause:]
  • [:awkward:]
  • [:brokenheart:]
  • [:clown:]
  • [:confused:]
  • [:decline:]
  • [:diggingmouth:]
  • [:eyebrows:]
  • [:grinning:]
  • [:haha:]
  • [:ill:]
  • [:kiss:]
  • [:lascivious:]
  • [:laugh:]
  • [:love:]
  • [:lovely:]
  • [:rhinorrhea:]
  • [:smile:]
  • [:solid:]
  • [:strong:]
  • [:sweat:]
  • [:tearcollapse:]
  • [:tongue:]
  • [:uncomfortable:]
  • [:weak:]
  • [:worry:]
Tips:支持Markdown语法

0 个评论

抢座沙发~~~~
开发工程师 @ 有赞科技公司

登录

第三方账号登录:
GitHub
微信
微博