https://github.com/PizzaLiu/PHP-FIG PSR(Proposing a Standards Recommondation 建议重新修订标准), 即PHP编码规范,目前PSR...更新为2016.5.26的PSR4,后续我们将持续关注。...PSR(Proposing a Standards Recommendation),PHP编码规范: PHP代码必须使用标签:<?...命名空间以及类名必须遵循PSR-4; 常量所有字母大写,词间以下划线分割;类属性可驼峰式,可下划线,可小写驼峰式;方法名必须符合小写驼峰式开头的命名规范; 代码必须符合PSR-1中所有规范; 所有PHP...protected以及public),abstract以及final必须声明在访问修饰符之前,而static必须声明在访问修饰符之后; 本文制定了日志类库的通用接口规,是为了让日志类库以简单通用的方式,通过接收一个Psr
已经发布了五个规范: PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲 PSR-1:基本的编码风格 PSR-2:编码风格(更严格) PSR-3:日志记录器接口...PSR-4:自动加载 PSR-1 PHP标签: PHP代码必须放在<?...PSR-2 PSR-2是对PSR-1的PHP的扩充。 贯彻PSR-1: 使用PSR-2代码标准之前要先贯彻PSR-1的代码标准。...PSR-2: Coding Style Guide has been deprecated PSR-3 与PSR-1和PSR-2不同,PSR-3规定了一套通用的日志记录器接口(Psr\Log\LoggerInterface...编写一个PSR-4自动加载器 PSR-4规范不要求改变代码的实现方式,只建议如何使用文件系统目录结构和PHP命名空间组织代码,PSR-4规范以来PHP命名空间和文件系统目录结构查找并加载PHP类、接口和
PHP-FIG 在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG。...就是这个联盟组织发明和创造了PSR-[0-4]规范 FIG 是 Framework Interoperability Group(框架可互用性小组)的缩写,由几位开源框架的开发者成立于 2009...1 基础编码规范 PSR-1 2 编码风格规范 PSR-2 3 日志接口规范 PSR-3 4 自动加载规范 PSR-4 6 缓存接口规范 PSR-6 7 HTTP 消息接口规范 ---- 基础编码规范...PHP代码文件 以 或 标签开始; PHP代码文件 以 不带 BOM 的 UTF-8 编码; 命名空间以及类 符合 PSR 的自动加载规范:[PSR-4]() 中的一个; 方法名称 符合...---- 编码风格规范 代码遵守 PSR-1。 代码使用4个空格来进行缩进,而不是用制表符。 一行代码的长度有硬限制;软限制为120个字符,每行代码80个字符或者更少。
概述仔细的缕了一下关于PHP代码的书写规范,我发现我确实有很多不足的地方,需要改进,PHP代码遵循PSR(PHP Standard Recommendation)规范,之前忘了看那本书到psr4,psr4...优化的是composer的依赖倒置,现在已经到psr18了,官网链接 php-fig 。...= $token; $params = http_build_query($data); return $params;}7.代码列 最好不要超过 120,单个函数 不要超过 100 行(psr2...readability and to indicate related blocks of code.There MUST NOT be more than one statement per line.8.psr14
参考:http://www.php-fig.org/psr/psr-0/ 以下,列出PSR0构建的规范类的几种形式: ?...,但是相对与PSR0,却是不太容易明白 ?...四、Composer对PSR4的处理 看了Composer对PSR4的处理,才能比较容易理解PSR4。...自动生成的PSR4配置文件名称为autoload_psr4.php(PSR0的是autoload_namespace.php),配置文件返回一个关联数组,键是名称空间的前缀,值是名称空间前缀对应的路径。...但是这里有些例外,类名中的下划线在PSR4中是不需要转换成目录的。 使用PSR4,我觉得有2个好处: 1. 减少代码目录的深度 2. 可以通过前缀快速找到映射目录,提高自动加载的效率
PSR-6 vs PSR-16 PHP 框架互操作组 (PHP-FIG) 提供了两项与缓存相关的公认建议:PSR-6(缓存接口)和 PSR-16(简单缓存)。...我们将看看这两个 PSR 以找出它们之间的区别。 PSR-6 PSR-6 为缓存系统提供了一个通用接口。经过不少于四年的工作,于2015年12月8日被PHP-FIG接受。...PSR-16 PSR-16 在 PSR-6 之后于 2017 年 1 月 2 日被 PHP-FIG 接受。最终投票显示明确批准,24 票赞成,3 票反对。...建议的目标 PSR-16 努力为缓存操作提供比 PSR-6 更简单的接口,但范围更有限。 术语 PSR-16 没有缓存池和缓存项的概念——它只是抽象缓存。...PHP Cache 是一个缓存系统,其适配器实现了 PSR-6 和 PSR-16 接口。 此外,Symfony 3.3 提供了将 PSR-6 缓存池转换为 PSR-16 缓存的适配器,反之亦然。
本篇规范是 PSR-1基本代码规范的继承与扩展。 本规范希望通过制定一系列规范化 PHP 代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。...概览 代码 必须 遵循 [PSR-1] 中的编码规范 。 代码 必须 使用 4 个空格符而不是「Tab 键」进行缩进。...基本编码准则 代码 必须 符合 PSR-1 中的所有规范。 2.2. 文件 所有 PHP 文件 必须 使用 Unix LF (linefeed) 作为行的结束符。
包 psr/container 包中提供了上面提到的接口和相关异常类。 实现 PSR 容器接口的包应该申明为 psr/container-implementation 1.0.0 包。...需要使用容器的项目只需要引入上面实现的包 psr/container-implementation 1.0.0即可。 接口 Psr\Container\ContainerInterface 1<?...php 2namespace Psr\Container; 3 4/** 5 * 容器的接口类,提供了获取容器中对象的方法。...从 psr/container version 2.0 开始,上面的接口已经更新,添加了返回类型提示(但仅限于 has()方法)。...Psr\Container\ContainerExceptionInterface 1<?php 2namespace Psr\Container; 3 4/** 5 * 容器中的基础异常类。
PSR-0自动加载规范 此规范已被弃用 - 本规范已于 2014 年 10 月 21 日被标记为弃用,目前最新的替代规范为 PSR-4 。
PSR-3 日志接口规范 本文制定了日志类库的通用接口规范。 本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。...同样地,使用 Psr\Log\LoggerTrait 也只需实现其中的 log 方法。...Psr\Log\LogLevel 类装载了八个记录等级常量。 包 接口和类的描述、相关的异常类以及用于验证你所写代码的测试套件都将作为 psr/log 包的一部分提供。...Psr\Log\LoggerInterface 1<?...Psr\Log\LogLevel 19<?
PSR-4 自动加载规范 PSR-4 描述了从文件路径中 自动加载 类的规范。 它拥有非常好的兼容性,并且可以在任何自动加载规范中使用,包括 PSR-0。...PSR-4 规范也描述了放置 autoload 文件(就是我们经常引入的 vendor/autoload.php)的位置。...下划线在全限定类名中没有任何特殊含义(在 PSR-0 中下划是有含义的)。 全限定类名可以是任意大小写字母的组合。 所有类名的引用必须区分大小写。
1.5 PSR编码规范 1.5.1 概述 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。...网址:http://psr.phphub.org/ ? 1.5.2 PSR-1 基础编码规范 1、PHP代码文件 必须 以 <?php 或 <?...方法名称必须符合小写开头驼峰命名规范5、 副作用:(side effects),一个文件只做一件事情,如果做了其他事情就是产生了副作用 不产生副作用:一个文件只做一件事 产生副作用:一个文件做了多件事情 1.5.3 PSR
PSR-1 基础编码规范 本篇规范制定了代码基本元素的相关标准,以确保共享的 PHP 代码间具有较高程度的技术互通性。...声明任一标志(类、函数、常量等),或引起副作用(如果一个函数修改了自己范围之外的资源,那就叫做有副作用,如:生成输出以及修改 .ini 配置文件等),但是不应该二者都有 命名空间以及类 必须 符合 PSR...的自动加载规范: [PSR-0(已废弃)或 PSR-4] 中的一个 类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范 类中的常量所有字母都 必须 大写,单词间用下划线分隔 方法名称...命名空间和类名 命名空间和类名 必须 遵循 [自动加载] 规范: [PSR-0, PSR-4]。
PSR-12 编码规范扩充 概览 此规范起到继承,扩展和替换 PSR-2 的作用, 同时编码风格遵守 PSR-1 这个基础编码标准。...与 PSR-2 一样, 此规范的目的是减少不同人在阅读代码时认知冲突。 它通过列举一套如何格式化 PHP 代码的公共的规则和期望来实现这个目标。...PSR-2 在 2012 年被接受,随后 PHP 经历了很多变化,影响了编码风格。同时 PSR-2 是 PHP 编码时候的基础功能,被广泛的采用。...因此,PSR 力图通过一种更加现代的方式说明 PSR-2 的内容和新功能,并对 PSR-2 进行更正。...PSR-1 中的术语 StudlyCaps 必须解释为 PascalCase (帕斯卡命名法:大驼峰式命名法),其中每个单词的第一个字母大写,包括第一个字母。
PSR-4规范:自动加载 虽然在[PSR-4-Meta]中指出PSR-4是对PSR-0规范的补充而不是替换,但是在[PSR-0]中已经写到PSR-0于2014.10.21被废弃,并在[PSR-4-Meta...]中详细写明了PSR-0的不足,已经不能满足面向package的自动加载。...PSR-4规范能够满足面向package的自动加载,它规范了如何从文件路径自动加载类,同时规范了自动加载文件的位置。 1.1 概述 这份PSR规范描述了从文件路径自动加载类。...可以与PSR-0规范互操作,可以一起使用。这份PSR也描述了自动加载的文件应当放在哪里。...PSR-4应用 PHP的包管理系统Composer已经支持PSR-4,同时也允许在composer.json中定义不同的prefix使用不同的自动加载机制。
PSR-2 编码风格规范 本篇规范是 PSR-1 基本代码规范的继承与扩展。 本规范希望通过制定一系列规范化 PHP 代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。...概览 代码 必须 遵循 PSR-1 中的编码规范 。 代码 必须 使用 4 个空格符而不是 Tab 键 进行缩进。...final public static function bar() 22 { 23 // method body 24 } 25} 通则 基本编码标准 代码 必须 符合 PSR
PSR-6 缓存接口规范 缓存是提升应用性能的常用手段,为框架中最通用的功能,每个框架也都推出专属的、功能多样的缓存库。这些差别使得开发人员不得不学习多种系统,而很多可能是他们并不需要的功能。...目标 本 PSR 的目标是:创建一套通用的接口规范,能够让开发人员整合到现有框架和系统,而不需要去开发框架专属的适配器类。...1namespace Psr\Cache; 2 3/** 4 * CacheItemInterface 定了缓存系统里对缓存项操作的接口 5 */ 6interface CacheItemInterface...1namespace Psr\Cache; 2 3/** 4 * CacheItemPoolInterface 生成 CacheItemInterface 对象 5 */ 6interface...1namespace Psr\Cache; 2 3/** 4 * 传参错误抛出的异常接口 5 * 6 * 当一个错误或者非法的传参发生时,**必须** 抛出一个继承了 7 * Psr\Cache
PSR-13 超媒体链接 在 HTML 和各种 API 格式的上下文中,超媒体链接已经变成 Web 越来越重要的一部分。...另外,一些链接提供者对象,如 PSR-7 响应对象,被设计为不可变的。这意味着在就地添加链接的方法将是不兼容的。...包 描述的接口和类作为 psr/link 包的一部分被提供。 接口 Psr\Link\LinkInterface 1<?...php 2 3namespace Psr\Link; 4 5/** 6 * 一个可读的链接对象。...49 */ 50 public function getAttributes(); 51} Psr\Link\EvolvableLinkInterface 1<?
命名空间和类必须遵循一个“自动加载”规范:[PSR-0, PSR-4]。 类名称必须声明为StudlyCaps的形式,即名称中每个单词首字母大写。 类常量必须只使用大写字母,用下划线来做单词间隔离。...bar')) { function bar() { // function body } } 四、命名空间和类名称 命名空间和类必须遵循一个“自动加载”规范:[PSR...-0, PSR-4]。...文章作者ianzhi,原文地址:https://www.dnote.cn/users/ianzhi/posts/php-psr-1 文章版权归作者所有,转载请保留此声明。
以下这两个文档分别为 HTTP 的消息接口做了详细定义 Psr\Http\Message\RequestInterface 和 Psr\Http\Message\ResponseInterface 。...Psr\Http\Message\RequestInterface 和 Psr\Http\Message\ResponseInterface 继承于 Psr\Http\Message\MessageInterface...当接口 Psr\Http\Message\MessageInterface 可能被直接实现的时候,实现者应该实现 Psr\Http\Message\RequestInterface 接口和 Psr\Http...扩展包 上面讨论的接口和类库已经整合成为扩展包:psr/http-message。...接口 Psr\Http\Message\MessageInterface 1<?
领取专属 10元无门槛券
手把手带您无忧上云