当前位置: 首页 > 编程日记 > 正文

【php】【psr】psr2 编码风格规范

为避免浏览多个作者参与编写的项目时,因风格的不同造成不便时,大家可以使用同一套风格规范来统一标准

  • 代码必须遵循PSR1的规范
  • 缩进使用4个空格,而不是TAB键缩进
  • 每行代码控制在80-120个
  • 每个namespace申明语句后,每个'use'申明语句后一定要空一行
  • 类的开始和结束花括号必须自成一行,方法的也是
  • 类的属性必须添加访问控制修饰符如private,public,protectedabstract,final必须放在访问修饰符之前,static放在
    访问修饰符之后
  • 控制结构的关键字后面必须要有个空格 如 if (),而调用函数或方法则一定不能有空格 应getFunction()
  • 控制结构的开始花括号和申明写在一行,结束花括号自成一行;开始花括号后,结束花括号前一定不能有空格
  • 所有PHP文件以Unix LF (linefeed)作为行的结束符
  • 所有PHP文件必须以空白行结束
  • 纯PHP文件必须省略最后的 ?>
  • 非空行后一定不可有多余的空格符
  • 每行一定不可存在超过一条语句
  • 关键字全部小写
  • use语句,一行应该只有一个
  • 类的extends,implements 必须和类名在一行,implements继承的接口名可以多行,多行时一行只能有一个接口名
  • 一定不要用var申明属性
  • 不要使用下划线定义属性和方法
  • 方法名一定要定义访问修饰符
  • 方法申明的左括号后右括号前不要有空格
  • 方法的参数后面逗号紧接参数名,逗号后有空格
  • 拆分成多行的方法参数 结束括号和开始的花括号要在一行,方法的申明和开始括号在一行
  • 调用方法时和方法的申明规则一样
  • 控制结构结束)和开始的{之间要有个空格
  • 控制结构 else 或 else if 必须和 开始花括号和结束花括号在一行 如 } else {
  • 控制结构的结构体必须要有缩进
  • switch语句,case 相对于switch要有段缩进,break相对于case要有段缩进
  • 存在非空的case直穿语句时,必须交上//no break注释
<?php
switch ($expr) {case 0:echo 'First case, with a break';break;case 1:echo 'Second case, which falls through';// no breakcase 2:case 3:case 4:echo 'Third case, return instead of break';return;default:echo 'Default case';break;
}
<?php
namespace Vendor\Package;use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;class Foo extends Bar implements FooInterface
{public function sampleFunction($a, $b = null){if ($a === $b) {bar();} elseif ($a > $b) {$foo->bar($arg1);} else {BazClass::bar($arg2, $arg3);}}final public static function bar(){// 方法的内容}
}

转载于:https://www.cnblogs.com/china-flint/p/11132316.html

相关文章:

代码生成器项目正式启动

SVN地址是&#xff1a; svn://www.oksvn.com/CodeAssistant J2EE的项目开发工作本身充斥着各种重复&#xff0c;各种复制&#xff0c;各种粘贴&#xff0c;所以&#xff0c;才会出现了Spring和Struts2这些优秀的框架。 但是在使用这些框架的时候&#xff0c;有些问题也会不停的…

查询XML节点 value

查询XML节点 value&#xff1a;通过nodes 指定到节点通过Value属性取出值Declare Xml xmlset Xml<Employee><ID>1</ID><ID>2</ID></Employee>SELECT ID.value(.,Nvarchar(500)) as EmployeeID FROM Xml.nodes(Employee/ID) Employee(…

JQUERY动态生成当前年份的前5年以及后 2年

由于工作需要&#xff0c;赶紧记录下来转载于:https://www.cnblogs.com/wjhaaa/p/8652298.html

osgearth+vs2010安装

OSGEARTH VS2010 安装*VS 平台不重要,本教程也适用于VS2008等。假设我的OSG目录为&#xff1a;D&#xff1a;/OSG*本教程参考网上osgearthvs2008安装。 一、准备工作下载: http://osgearth.org/wiki/Downloads 1. CURL (curl-7.21.7.tar.gz): http://curl.haxx.se/downl…

Contos7 克隆实例 以及 配置网络-服务-等相关信息

以下为我自己整理的克隆虚拟机和设置固定IP的方法&#xff0c;记录一下&#xff0c;以防忘记&#xff1a; 桥接模式网络配置 1、配置ip地址等信息在文件里做如下配置&#xff1a; /etc/sysconfig/network-scripts/ifcfg-ens33 命令&#xff1a; vi /etc/sysconfig/network-sc…

【jdbc】兴唐第三十一节课之修改数据和查询数据(使用自己写的DBUtil)

一、修改数据 方法一 代码实现&#xff1a; public static void opDBByNormal() {DruidDataSource dds new DruidDataSource(); dds.setUsername("root");dds.setPassword("root");dds.setUrl("jdbc:mysql://localhost:3306/system");dds.se…

ios4.2文件夹及多任务

ios4.2的文件夹和多任务可谓是主要特性,但是安装完后我却丝毫不知道该怎么做...在网上找了好久总算解决了 多任务:双击home键,在屏幕下方就会显示当前正在执行的任务,如http://tech.sina.com.cn/it/2010-11-22/22334894444.shtml所示. 文件夹操作:见视频http://v.youku.com/v_s…

利用Unity3D制作简易2D计算器

利用Unity3D制作简易2D计算器 标签&#xff08;空格分隔&#xff09;&#xff1a; uiniy3D 1. 操作流程 在unity3DD中创建一个新项目 注意选择是2D的&#xff08;因为默认3D&#xff09; 在Assets框右键新建C#脚本 在新建的C#脚本中写入下列代码 代码下载地址 https://downlo…

将moss 2007的模板文件导入到moss 2010

最近公司HR请请将一个moss2007的调查模板文件导入到我们部门的Moss protal 上面。 我想这是举手之劳&#xff0c;就爽快的答应了。 但是导入时却报如下错误&#xff1a; ErrorMicrosoft SharePoint Foundation version 3 templates are not supported in this version of the p…

C算法--黑盒测试

黑盒测试 系统会判断每组数据的输出结果是否正确。 单点测试只需要按正常的逻辑执行一遍程序即可。 多点测试&#xff1a; while...EOF型 while...&#xff08;T--&#xff09;型 在多点测试中&#xff0c;每次循环都要重置一下变量和数组&#xff0c;否则在下一次数据来临时变…

【java】兴唐第三十一节课之反射

知识点 一、获取类对象、 方法一 代码实现&#xff1a; Class myDriver Class.forName("com.mysql.jdbc.Driver"); 方法二&#xff1a; 代码实现&#xff1a; Class mysqlDriver com.mysql.jdbc.Driver.class; 注&#xff1a;方法二中Driver前面的东西可以…

ADO.NET与ORM的比较(5):MyBatis实现CRUD

说明&#xff1a;这是一个系列文章&#xff0c;在前面的四篇当中周公分别讲述了利用ADO.NET、NHibernate、Linq to SQL及EntityFramework来实现CRUD功能&#xff08;C:Create/R:Read/U:Update/D:Delete&#xff09;&#xff0c;在这里再讲述另一种框架&#xff0c;那就是MyBati…

BZOJ1391: [Ceoi2008]order

【传送门&#xff1a;BZOJ1391】 简要题意&#xff1a; 有n个工作&#xff0c;m种机器&#xff0c;每种机器可以租或买来&#xff0c;给出租和买的费用&#xff0c;每个工作有若干个工序&#xff0c;每个工序需要用某种机器完成&#xff0c;完成工作可以获得利润 求出完成n个工…

MongoDB(3)--有关NoSQL及MongoDB的一些概念

学习任何东西在没有理解的前提下去背熟一些概念是没有用的&#xff0c;就像只背会了几个概念而没有理解的开发人员去面试是经不住面试官的追问的。前面的两篇对MongoDB做了简单的介绍&#xff0c;能够很快上手&#xff0c;对MongoDB有一个感性的认识。本篇大部分内容来自MongoD…

SpringBootMybatis 关于Mybatis-generator-gui的使用|数据库的编码注意点|各项复制模板...

mysql注意点&#xff1a; 1.有关编码 create table user( id int primary key auto_increment, name varchar(255), password varchar(255) )ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8; 需要加上引擎的注释和默认数据库编码 application.properties的默认写法 #数据源…

【java】兴唐第三十节课之零三知识点总结

1、服务器通过session id来辨别用户 2、绝对路径与相对路径 (1)相对路径 . :当前路径 .. :向上返回一层路径 &#xff08;2&#xff09;绝对路径&#xff1a; 查找所有的文件都是从根目录出发 目录结构如图 代码实现&#xff1a; <div><span><a href …

(续)我对09毕业生说两句

上次写那篇文章已经是09年2月份&#xff0c;转眼2年过去&#xff0c;一直没想好再说些什么。后来想想也不用刻意说些什么&#xff0c;就是闲聊一下我的一些新看法吧。 简 历这个东西很重要&#xff0c;从简历上可以看出很多信息来。有很多人喜欢写自己细致认真。可以从简历上看…

Python Socket请求网站获取数据

Python Socket请求网站获取数据 ---阻塞 I/O ->收快递&#xff0c;快递如果不到&#xff0c;就干不了其他的活 ---非阻塞I/0 ->收快递&#xff0c;不断的去问&#xff0c;有没有送到&#xff0c;有没有送到,...如果送到了就接收 ---I/O多路…

用户控件和服务器控件的数据绑定

一、绑定Repeater控件的数据源 aspx.cs文件中绑定Repeater控件的数据源在BindDataSource()中&#xff1a; protected override void BindDataSource(){ this.rpID.DataSource this.dataList; this.rpID.DataBind();}Repeater控件事件OnItemDataBound&#xff0c;表示在循环…

【jsp】兴唐第三十节课作业

写一个jsp调取数据库的文件显示在主页面&#xff0c;并实现查找、添加、删除和数据更新以及用户登录的功能 stuList.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <% page import "…

Linux命令行好玩的命令

0.cal 2019 #输出日历并显示今天是哪一天 1.命令“date”&#xff0c;显示系统的当前日期和时间&#xff1b; 2.命令“date 040100002016”&#xff0c;屏幕显示新修改的系统时间&#xff1b; #不太明白 3.转载于:https://www.cnblogs.com/Formulate0303/p/11142997.html

Solaris下访问windows共享资源

今在做实验过程中&#xff0c;发现上传软件太费时而且解压起来也繁琐&#xff0c;还要占用很大的空间&#xff0c;就在windows上创建了共享资源&#xff0c;在linux下使用mount挂载上来&#xff0c;直接解压在windows上面&#xff0c;用完了直接将解压的文件删除即可&#xff0…

centOS外部浏览器无法访问tomcat8000端口解决办法

防火墙开放特定端口 &#xff08;iptables&#xff09; 查看状态:iptables -L -n下面添加对特定端口开放的方法&#xff1a;使用iptables开放如下端口/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT保存/etc/rc.d/init.d/iptables save重启服务service iptables resta…

Linux命令行与shell脚本编程大全:第2版

《Linux命令行与shell脚本编程大全:第2版》基本信息作者&#xff1a; (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍]译者&#xff1a; 武海峰丛书名&#xff1a; 图灵程序设计丛书出版社&#xff1a;人民邮电出版社ISBN&#xff1a;9787115288899上架时间&#x…

企业云存储云办公方案

云存储、云计算最近一直被炒得很热&#xff0c;成为了一部分人文档中既神秘又华丽的辞藻&#xff0c;总之来总之去就是"云里来雾里去"&#xff0c;其实"云技术"与历史上的"纳米技术"一词一样忽悠了很多很多的人。云存储是在云计算基础上衍生起来…

【servlete】兴唐第三十二节课知识点汇总

一、 servlet开发&#xff1a; 1、创建java类并继承HttpServlet 2、重写 doGet\doPost方法 3、将Servlet配置到web.xml中&#xff1a; <servlet> <servlet-name>自定义一个唯一的名称</servlet-name> <servlet-class>servlet全类…

悦读上品 得乎益友

悦读上品 得乎益友 ——电子工业出版社2011新年巨献不可复制的《传世经典书从》 孔子云&#xff1a;“取乎其上&#xff0c;得乎其中&#xff1b;取乎其中&#xff0c;得乎其下&#xff1b;取乎其下&#xff0c;则无所得矣。”读书求知&#xff0c;贵在能选择好书中的上品——经…

超详细的Java面试题总结(四 )之JavaWeb基础知识总结

系列文章请查看&#xff1a; 超详细的Java面试题总结&#xff08;一&#xff09;之Java基础知识篇 超详细的Java面试题总结&#xff08;二&#xff09;之Java基础知识篇 超详细的Java面试题总结&#xff08;三&#xff09;之Java集合篇常见问题 超详细的Java面试题总结&#xf…

HTML教程--多页面窗体

基本语法 <frameset> ... </frameset> <frame src"url"> <noframes> ... </noframes> 在 <noframes> 标记后的文字将只出现在不支持 FRAMES 的浏览器中。 <HTML><HEAD></HEAD><FRAMESET><FRAME SRC…

js左侧三级菜单导航代码

效果演示&#xff1a; 实例代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang&…