关于开发标准这块,能够说一直都是风格迥异,各家都有各家的玩法,民间更是我的玩我的的。目前咱们国内比较出名的几个框架(Yii,Laravel) 都已经支持Composer而且加入了PHP-FIG(php框架程序组)。php
其中Composer的自动加载就支持PHP-FIG指定的PSR-0 和 PSR-4 规范来实现自动加载机制,而且Composer推荐使用PSR-4
html
这是一个自愿非正式的机构,可是就目前对咱们的影响来看,可能都已经默认为一个公信组织了,的的确确制定了很多很是好的规范laravel
目前从官网看,已经投票( http://www.php-fig.org/psr/ )经过的有7个大的规范了
git
PSR-0 自动加载规范 ( 官方已废弃,主要是php5.3之前没有命名空间 )github
PSR-1 编码规范json
PSR-2 编码风格推荐缓存
PSR-3 日志接口php框架
PSR-4 改进的自动加载规范( 官方推荐 ,规范更简洁调理清晰了)yii2
PSR-6 缓存接口composer
PSR-7 HTTP消息接口
在Composer 依赖管理工具实现的autoload 推荐第三方依赖库或者项目使用 PSR-4,可是Composer自己 也是向下兼容PSR-0的
博文(Composer : php依赖管理工具)中演示代码中,安装了两个库
phpexcel
monolog
这两个库,phpexcel 实现的是PSR-0规范,monolog实现的确实PSR-4规范,这是从各自库目录下面的composer.json文件得知的
其实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中文版: https://github.com/PizzaLiu/PHP-FIG
php-fig官网:http://www.php-fig.org/