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

5年以前  |  阅读数:381 次  |  编程语言:PHP 

前言

关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(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...
      }
     }
    }

总结

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例