PHP标准规范PSRPSR介绍PSR是PHPStandardRecommendations的缩写。PHPFIG组织制定的PHP规范是PHP开发的实践标准。PHPFIG,FIG是FrameworkInteroperabilityGroup(框架互操作性组织)的缩写,该组织于2009年由几位开源框架开发者成立,此后也挑选了许多其他成员(包括但不限于Laravel、Joomla、Drupal、Composer、Phalcon、Slim、Symfony、ZendFramework等)虽然不是“官方”组织,但代表了大部分PHP社区。该项目的目的是通过框架作者或框架代表之间的讨论制定一个限制最少的协作标准,每个框架都遵循统一的编码标准,以避免PHP的发展受到各自的自开发风格的阻碍。框架,并解决这个问题。程序员已经被困扰了很久。Thesourceoftheabovecontent:https://github.com/php-figPSRstandardcontentstatusserialnumbertitleauthorcoordinatorinitiatorX0automaticloadingspecificationMatthewWeierO'PhinneyN/AN/AA1basiccodingspecificationPaulM.JonesN/AN/AA2CodingStyleSpecificationPaulM.JonesN/AN/AA3LoggingInterfaceSpecificationJordiBoggianoN/AN/AA4AutoloadingSpecificationPaulM.JonesPhilSturgeonLarryGarfieldD5PHPDocStandardMikevanRielVacantVacantA6CacheInterfaceSpecificationLarryGarfieldPaulDragoonisRobertHafnerA7HTTPMessageInterfaceSpecificationMatthewWeierO'PhinneyBeauSimensenPaulM.JonesD8Huggable接口LarryGarfieldVacantPaulM.JonesD9项目安全问题公示LukasKahweSmithKorvinSzantoLarryGarfieldD10项目安全上报方法LukasKahweSmithLarryGarfieldKorvinSzantoD11服务容器接口MatthieuNapoli,DavidNégrierPaulM.JonesVacantD12全量编码风格规范KorvinSzantoAlexanderMakarovRobertDeutzD13超媒体链接LarryGarfieldMatthewWeierO'PhinneyEvertPotDescription:A(Accepted)=Approved|D(Draft)=InDraft|R(Review)=InReview|X(Deprecated)=Deprecated.3problemssolvedbyPSRAUTOLOADING?Priortothis,eachframeworkormanufacturerdiditsownautomaticloading,someusedvoid__autoload(string$class)andsomeusedboolspl_autoload_register()Thecorrespondingrulesoftheirrespectivenamespacesandfiledirectoriesareinconsistent,Youneedtobefamiliarwiththeautomaticloadingmechanismofeachframeworkandclasslibrarytouseitsmoothly.有了统一的自动加载规范(统一的命名空间和文件路径映射规范),你只需要遵循相同的自动加载机制就可以使用各种框架和类库,甚至不需要知道内部是如何实现自动加载的。具体的PSR标准是:PSR-4:ImprovedAutoloadingINTERFACES在此之前没有统一的规范接口,相同的功能(比如Log)都是由各个框架或者类库自己实现的,都是再制造轮子,具有一定的统一性只要一个厂商或框架实现了统一的接口,其他厂商或框架不需要重新实现,可以直接使用。具体的PSR标准有:PSR-3:LoggerInterfacePSR-6:CachingInterfacePSR-7:HTTPMessageInterfacesPSR-11:ContainerInterfacePSR-13:HypermediaLinksPSR-15:HTTPHandlersPSR-16:SimpleCacheCODINGSTYLES具有统一的编码风格specification,更有利于查看和学习各种框架或类库,不需要每次都去适应新的编码风格。同时,在开发团队内部使用统一的编码标准,更有利于团队内部的代码审查、版本控制和内部沟通。具体的PSR标准有:PSR-1:BasicCodingStandardPSR-2:CodingStyleGuide辅助工具phpcsPHPCodeSniffer,简称phpcs,主要用来检查PHP代码是否符合PSR-2标准。如果PHP代码的某些部分不符合PSR-2,则会生成错误报告,以便我们检查哪些代码不符合。安装composerglobalrequire'squizlabs/php_codesniffer=*'测试phpcs--version使用phpcs--standard=PSR2PHP文件(或目录)注意phpcs默认使用的编码风格注解是PEAR,所以如果要查看PSR-2标准,需要明确指定(--standard=PSR2)。检查phpcs支持哪些编码标准。phpcs-i具体操作查看官方文档:PHPCodeSnifferWIKiphp-cs-fixerPHPCodingStandardsFixer,简称php-cs-fixer,可以用来帮我修正代码的编码风格,使其符合PSR-2规范。安装composerglobalrequirefriendsofphp/php-cs-fixer测试php-cs-fixer--version使用php-cs-fixerfixphp/path/to/dir(or/path/to/file)详细操作查看官方文档:PHP-CS-修复器
