PHP符合PSR编程规范的实例分享

前言

关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(Yii,Laravel) 都已经支持Composer并且加入了PHP-FIG(php框架程序组)。

其中Composer的自动加载就支持PHP-FIG指定的PSR-0 和 PSR-4 规范来实现自动加载机制,并且Composer推荐使用PSR-4

PHP-FIG

这是一个自愿非正式的机构,但是就目前对我们的影响来看,可能都已经默认为一个公信组织了,的的确确制定了不少非常好的规范

目前从官网看,已经投票( http://www.php-fig.org/psr/  )通过的有7个大的规范了

  1. PSR-0 自动加载规范 ( 官方已废弃,主要是php5.3以前没有命名空间 )
  2. PSR-1 编码规范
  3. PSR-2 编码风格推荐
  4. PSR-3 日志接口
  5. PSR-4 改进的自动加载规范( 官方推荐 ,规范更简洁调理清晰了)
  6. PSR-6 缓存接口
  7. PSR-7 HTTP消息接口

实例

<?php
namespace Standard; // 顶部命名空间
// 空一行
use Test\TestClass;//use引入类

/**
 * 类描述
 *
 * 类名必须大写开头驼峰.
 */
abstract class StandardExample // {}必须换行
{
  /**
  * 常量描述.
  *
  * @var string
  */
 const THIS_IS_A_CONST = ''; // 常量全部大写下划线分割

 /**
  * 属性描述.
  *
  * @var string
  */
 public $nameTest = ''; // 属性名称建议开头小写驼峰
            // 成员属性必须添加public(不能省略), private, protected修饰符

 /**
  * 属性描述.
  *
  * @var string
  */
 private $_privateNameTest = ''; // 类私有成员属性,【个人建议】下划线小写开头驼峰

 /**
  * 构造函数.
  *
  * 构造函数描述
  *
  * @param string $value 形参名称/描述
  */
 public function __construct($value = '')// 成员方法必须添加public(不能省略), private, protected修饰符
 {// {}必须换行

  $this->nameTest = new TestClass();

  // 链式操作
  $this->nameTest->functionOne()
          ->functionTwo()
          ->functionThree();

  // 一段代码逻辑执行完毕 换行
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
  */
 public function testFunction($value = '')// 成员方法必须小写开头驼峰
 {
   // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 private function _privateTestFunction($value = '')// 私有成员方法【个人建议】下划线小写开头驼峰
 {
   // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 public static function staticFunction($value = '')// static位于修饰符之后
 {
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 abstract public function abstractFunction($value = ''); // abstract位于修饰符之前

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $value 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 final public function finalFunction($value = '')// final位于修饰符之前
 {
  // code...
 }

 /**
  * 成员方法名称.
  *
  * 成员方法描述
  *
  * @param string $valueOne 形参名称/描述
  * @param string $valueTwo 形参名称/描述
  * @param string $valueThree 形参名称/描述
  * @param string $valueFour 形参名称/描述
  * @param string $valueFive 形参名称/描述
  * @param string $valueSix 形参名称/描述
  *
  * @return 返回值类型    返回值描述
  */
 public function tooLangFunction(
  $valueOne  = '', // 变量命名可小写开头驼峰或者下划线命名,个人那习惯,据说下划线可读性好
  $valueTwo  = '',
  $valueThree = '',
  $valueFour = '',
  $valueFive = '',
  $valueSix  = '')// 参数过多换行
 {
  if ($valueOne === $valueTwo) {// 控制结构=>后加空格,同{一行,(右边和)左边不加空格
   // code...
  }

  switch ($valueThree) {
   case 'value':
    // code...
    break;

   default:
    // code...
    break;
  }

  do {
   // code...
  } while ($valueFour <= 10);

  while ($valueFive <= 10) {
   // code...
  }

  for ($i=0; $i < $valueSix; $i++) {
   // code...
  }
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • 深入php之规范编程命名小结

    在之前工作的时候都未注重自己的命名规范,现在根据驼峰命名严格要求自己: 相关的定义如下 基本概念骆驼式命名法(又称驼峰命名法),正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字.程序员们为了自己的代码能 更容易的在同行之间交流,所以多采取统一的可读性比较好的命名方式.例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname.my_name.MyName或者myName.这样的命名规则不适合所

  • 11个PHPer必须要了解的编程规范

    本文将讨论常用的良好的代码习惯,或者称为代码规范,在PHP领域. 1,错误报告开启 错误报告是在PHP中一个非常有用的功能,应同时在开发阶段启用. 这可以帮助我们确定我们的代码中的问题. 最常用的功能是"E_ALL",这有助于我们发现所有的警告和严重错误. 必须指出的是,我们把我们的代码投入上线前,我们应该关闭这个功能提示,否则会在浏览器上的暴漏所有潜在错误及警告. 2,使用DRY原则 'Do not Repeat Yourself',DRY原则指的是不要重复你的代码.. 这个概念是一

  • 基于php编程规范(详解)

    今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1.PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 function 函数体说明 3 代码缩进 4 if省略 5 变量规范 6 命名规范 7 十行一注释 8 注释风格 9 开放关闭原则 2.文件说明 个人代码 -规范如下: <? /* +---------------------------------------------------------------------- + Title

  • PHP编程风格规范分享

    说明:本规范由 EasyChen 借鉴 SINA网络应用开发部<C++开发规范>和互动技术部<PHP4开发规范>,以及phpDocument规范 整理出的开发规范.我觉得非常不错, 适合PHP的开发,给大家参考,养成一个良好的编程风格是非常有必要的. 第1章 命名规范 1.1变量 1.1.1全局变量 全局变量使用$g_开头,如$g_data_list. 1.1.2 一般变量 一般的变量使用小写字母命名,单词之间使用下划线分隔. 变量名字应该使用名词或者形容词+名词的方式.如$val

  • PHP符合PSR编程规范的实例分享

    前言 关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的.目前我们国内比较出名的几个框架(Yii,Laravel) 都已经支持Composer并且加入了PHP-FIG(php框架程序组). 其中Composer的自动加载就支持PHP-FIG指定的PSR-0 和 PSR-4 规范来实现自动加载机制,并且Composer推荐使用PSR-4 PHP-FIG 这是一个自愿非正式的机构,但是就目前对我们的影响来看,可能都已经默认为一个公信组织了,的的确确制定了不少非常好的规

  • Java编程BigDecimal用法实例分享

    Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类. BigDecimal 类的实现用到了 BigInteger类,不同的是 BigDecimal 加入了小数的概念. float和Double只能用来做科学计算或者是工程计算;在商业计算中,对数字精度要求较高,必须使用 BigIn

  • Dojo Javascript 编程规范 规范自己的JavaScript书写

    前言 良好的JavaScript书写习惯的优点不言而喻,今天彬Go向大家推荐Dojo Javascript 编程规范,相当不错的 Javascript 编程风格规范,建议大家可以借鉴一下此规范编写 Javascript.感谢i.feelinglucky的翻译. 序 Any violation to this guide is allowed if it enhances readability. 所有的代码都要变成可供他人容易阅读的. 快读参考 核心 API 请使用下面的风格: 结构 规则 注释

  • Javascript编程之继承实例汇总

    本文实例讲述了Javascript编程之继承.分享给大家供大家参考,具体如下: 这篇文字是在看完<Javascript 王者归来>后的整理总结,文章详细章节在 第21章 P537 继承一般要实现以下三层含义: 1)子类实例可以共享父类的方法: 2)子类可以覆盖父类的方法或者扩展新的方法: 3)子类和父类都是子类实例的类型. 一.构造继承法 子类中调用父类的构造函数来维护的,该继承法能实现多重继承,但只能继承父类的共有方法,无法继承静态方法,而且不能用instanceof来验证实例. funct

  • Android编程常用技巧实例总结

    本文实例讲述了Android编程常用技巧.分享给大家供大家参考,具体如下: 1. 登录的时候,如果输入有误,则输入框左右震动,表示输入有误 在res下准备一个anim文件夹,里面包含两个文件,main_login_shake.xml 和 main_login_cycle_7.xml, 其中,main_login_shake.xml如下: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:

  • Android编程实现调用系统分享功能示例

    本文实例讲述了Android编程实现调用系统分享功能.分享给大家供大家参考,具体如下: /** * 调用系统的分享功能 * Created by admin on 15-4-13. */ public class ShareActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV

  • matplotlib绘制符合论文要求的图片实例(必看篇)

    最近需要将实验数据画图出来,由于使用python进行实验,自然使用到了matplotlib来作图. 下面的代码可以作为画图的模板代码,代码中有详细注释,可根据需要进行更改. # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['Arial'] #如果要显示中文字体,则在此处设为:SimHei plt.rcParams['axes.un

  • JavaScript中Require调用js的实例分享

    在我最初开始写 JavaScript 函数时,通常是这样的: function fun1() { // some code here } function fun2() { // some other code here } ... 函数全写在全局环境中,项目很小时,通常不会有什么冲突问题. 但代码多了后,渐渐就发现,函数名称(英文词汇)有点不够用了.于是引入命名空间的概念,开始模块化代码. 命名空间下的函数 在命名空间下,我的代码这样写: var com = com || {}; com.zf

  • Android编程之微信SDK分享功能过程步骤详细分析

    本文实例讲述了Android编程之微信SDK分享功能过程步骤详细分析.分享给大家供大家参考,具体如下: 之前已经分析过怎么用官方的demo分享微信信息了,在这里我就不再多说,其中关于在自己应用分享说得很简单,本文作者也是经过一番折腾才弄成功,为了以后让大家都少走弯路,决定在这里从头到尾介绍怎么在自己的应用中分享功能 注意:顺序不能乱!! 1.建立自己的应用 TestShareWX (1)应用包名是com.freeson.test,然后建立一个测试Activity,名字为TestActivity,

随机推荐