Chinaunix首页 | 论坛 | 博客
  • 博客访问: 271130
  • 博文数量: 159
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1619
  • 用 户 组: 普通用户
  • 注册时间: 2016-01-10 19:58
文章分类

全部博文(159)

分类: Web开发

2016-10-11 23:39:23

诸王混战

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

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

PHP-FIG

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

目前从官网看,已经投票(   )通过的有7个大的规范了

  • PSR-0 自动加载规范 ( 官方已废弃,主要是php5.3以前没有命名空间 )

  • PSR-1 编码规范

  • PSR-2 编码风格推荐

  • PSR-3 日志接口

  • PSR-4 改进的自动加载规范( 官方推荐 ,规范更简洁调理清晰了)

  • PSR-6 缓存接口

  • PSR-7 HTTP消息接口

Composer自动加载

在Composer 依赖管理工具实现的autoload 推荐第三方依赖库或者项目使用 PSR-4,但是Composer本身 也是向下兼容PSR-0的

博文()中演示代码中,安装了两个库

  • phpexcel   

  • monolog 

这两个库,phpexcel 实现的是PSR-0规范,monolog实现的确实PSR-4规范,这是从各自库目录下面的composer.json文件得知的

PSR-0 与 PSR-4 区别

其实PSR-0 和 PSR-4 在内容上差异不大,这里也就不说定义了

  • PSR-0中最后一个\之后的类名,如有下划线会转化成路径分隔符 如Name_Space_Test会转换成Name\Space\Test.php,这是出于对PHP5.3以前版本兼容的考虑

  • PSR-0有更深的目录结构,比如定义了NS为 Foo\Bar=>vendor\foo\bar\src,use Foo\Bar\Tool\Request调用NS。

    如果以PSR-0方式加载,实际的目录为vendor\foo\bar\src\Foo\Bar\Tool\Request.php

    如果以PSR-4方式加载,实际目录为vendor\foo\bar\src\Tool\Request.php

参考文档

php-fig中文版: 

php-fig官网: 

原文地址:标签:                  

智能推荐

阅读(1173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~