搜索
查看: 2088|回复: 0

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

[复制链接]

4856

主题

4856

帖子

4861

积分

新手上路

Rank: 1

积分
4861
发表于 2018-2-11 11:59:56 | 显示全部楼层 |阅读模式

            前言
关于开发标准这块,可以说一直都是风格迥异,各家都有各家的玩法,民间更是个人玩个人的。目前我们国内比较出名的几个框架(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个大的规范了
[ol]
  
  • PSR-0 自动加载规范 ( 官方已废弃,主要是php5.3以前没有命名空间 )
      
  • PSR-1 编码规范
      
  • PSR-2 编码风格推荐
      
  • PSR-3 日志接口
      
  • PSR-4 改进的自动加载规范( 官方推荐 ,规范更简洁调理清晰了)
      
  • PSR-6 缓存接口
      
  • PSR-7 HTTP消息接口
    [/ol]
    实例
    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
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    长春门户网站

    长春门户网是网民了解长春的网络窗口,同是提供长春地区百姓生活分类供求信息的门户网站,同时提供长春网站建设、长春网站设计,我们将逐步的完善网站分类信息资源;

    长春门户网二维码

    联系我们

    • 工作时间:早上8:00 - 晚上5:30
    • 投稿联系:13624467185(微信同号)
    • 反馈邮箱:5053050@QQ.com
    • 公司地址:吉林省长春市亚泰大街与自由大路交汇五环国际大厦1408室

    QQ|小黑屋|手机版|Archiver|cc! ( 吉ICP备2021009740号-8 )

    Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表