栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PSR : php编码规范

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


  • 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的


博文(Composer : php依赖管理工具)中演示代码中,安装了两个库

  • phpexcel   

  • monolog 


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

PSR-0 与 PSR-4 区别

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


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

  • PSR-0有更深的目录结构,比如定义了NS为 FooBar=>vendorfoobarsrc,use FooBarToolRequest调用NS。

    如果以PSR-0方式加载,实际的目录为vendorfoobarsrcFooBarToolRequest.php

    如果以PSR-4方式加载,实际目录为vendorfoobarsrcToolRequest.php


参考文档

php-fig中文版: https://github.com/PizzaLiu/PHP-FIG

php-fig官网:http://www.php-fig.org/ 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/229510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号