/ php

ModernPHP FIG

对于PHP这门语言,众所周知的是其组件和框架的数量极其的多,毕竟世界上最好的语言

如果你正在为项目选择PHP框架,你一定会为其多种多样的框架而头疼,例如有小巧精致的CI(CodeIgniter),最近几年都很火很全面的Laravel,国产框架ThinkPHP,或者企业使用广泛的Yii等等。

然后你可能会试着了解下每个框架的特性来个选出你想要的,你发现Symfony的辅助库很棒,大大减少了自己去封装时间,然而你考虑到你的项目的大小由此选择了CI,这时你会想到将Symfony的辅助库搬到CI框架中话就好了,但是你只能专门为你的项目编写一个一次性的适配器。

所以,看出问题了吗,单独开发的框架没有考虑到和其他框架的通信,而一旦你选择了这样的框架,你只能束缚在它的生态系统中了。 为了解决这个问题,一些PHP框架的开发者在php|tek碰头并组建了PHP Framework Interop Group(框架协同工作组,简称PHP-FIG,)。PHP-FIG制定了推荐规范,PHP框架可以自愿的遵守这些规范,改进与其他框架通信和共享的功能。PHP-FIG是框架代表自发组织的,它发布的推荐规范,不是强制规范,你也可以申请加入其中,共同推进PHP社区的发展。

PHP-FIG的使命是实现框架的互操作性,指的是通过接口,自动加载机制和标准的风格,让框架相互合作。

接口

PHP框架之间通过共用的接口合作,框架只需要知道第三方依赖能提供什么方法,并不需要知道方法具体是如何实现的。PHP开发者使用接口可以开发、共享并使用专门的组件,而无需使用庞大的框架。

自动加载

PHP框架之间通过自动加载机制合作。自动加载即时PHP解释器在运行时按需自动找到并加载PHP类的过程,在PHP标准出现之前,PHP组件和框架会使用魔术方法__autoload()spl_autoload_register()方法实现各自的自动加载器。因此,你要去学习每个框架各自的加载器,但是现在,很多框架都遵守一个自动加载器标准,我们可以只使用一个自动加载器就能混合搭配多个PHP组件。

风格

风格指的的是标准的代码风格,即如何使用空格、大小写、括号的位置等等。即使在一个团队合作的项目中,我们都知道共同使用一种代码风格的好处,从代码的可阅读性,可维护性上都有很大的帮助。将代码风格标准化还能降低项目新贡献者的门槛,让他们能花更多时间用在提升框架的价值上,而不是为不同的风格而头疼。

php-fig中文github:传送门

ModernPHP 系列全集:传送门