当前位置:首页 > PHP教程 > PHP高级教程

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个大的规范了

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

    <?php
    namespace standard; // 顶部命名空间
    // 空一行
    use testtestclass;//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...
      }
     }
    }

    总结

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


    【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!