PHP组件

现代的PHP较少使用庞大的框架,而是更多的使用具有互操作性的专门组件制定解决方案。开发新PHP应用时,我很少直接的使用Laravel或Symfony,而是思考能把哪些现有的PHP组件结合在一起解决我的问题。

为什么使用组件

对很多PHP程序员来说,现代的PHP组件是个陌生的概念。我也是在几年前才知道。在没有深入理解组件之前,本能驱使我使用巨型框架(列如Symfony或CodeIgniter)开发PHP应用,我从不会考虑其他途径。以前我会花时间研究某个框架的封闭生态系统,使用这个框架提供的工具。如果不幸,框架没有提供我所需的功能,我会自己开发。大型框架也很难集成自定义的库或第三方库,因为这些库之间没有使用相同的接口。现在你可以放心,这样的日子一去不复返了,我们不用再感激庞大的框架,也不用束缚在这些框架筑起的围墙中了。

如今,开发应用时,我们会从不断增多的大量专用组件中选择合适的。既然已经有了guzzlehttp/guzzle组件,为什么还要浪费时间自己编写处理HTTP请求和响应库呢?既然league/routearua/router组件很好用,为什么还要重新创建路由呢?你应该明白我想要表达的意思了。其他开发者花了无数的时间创建、优化和测试专门的组件,以便让组件尽量做好一件事。如果响快速开发更好的应用,不使用这些组件而自己重新发明轮子的话,那就太傻了(除了个人研究)

组件是什么

严格来说,PHP组件是一系列相关的类、接口组件是打包的代码,用于帮你解决PHP应用中某个具体的问题。例如,如果你的PHP应用要收发HTTP请求,可以使用现成的组件;如果你的应用要解析逗号分隔的数据,可以使用现成的组件实现。我们使用组件为的是不重新实现已经实现的功能,把更多的时间用在项目的长远目标上。

任何市场中的产品都有好坏之分,PHP组件也是如此。就像在杂货店检查苹果一样,区分PHP组件的好坏也有一些技巧。

组件特点

  • 作用单一
    PHP组件作用单一,能很好的解决一个问题。组件不是万能的,不能杂而不精,要术业有专攻。组件专注于解决一个问题,而且使用简单的接口封装功能。
  • 小型
    PHP组件小巧玲珑,只包含解决某个问题所需的最少代码。组件中的代码量各异。一个PHP组件可以只有一个PHP类,也可以有多个PHP类,分别放在不同的子命名空间中。PHP组件中类的数量没有统一限制,根据解决问题的需要,想使用多少个就使用多少个。
  • 合作
    PHP组件之间能良好合作。毕竟组件就是为了和其他组件合作,解决更复杂的问题。PHP组件不会让自己的代码搅乱全局命名空间,而会把代码放在自己的命名空间中,防止与其他组件有名称冲突。
  • 测试良好
    PHP组件测试良好。因为体型小,因此很容易测试。如果PHP组件体型小,而且作用单一,很可能也易于测试,因为组件关注的东西少,而且依赖易于识别和模拟。最好的PHP组件本身会提供测试,而且有充足的测试覆盖度。
  • 文档完善
    PHP组件的文档完善。组件应该能让开发者轻易安装、理解和使用。好的文档可以做到这一点。PHP组件应该有个README文件,说明组件的作用,如何安装以及如何使用。还可以为组件搭建网站,放上更详细的信息。PHP组件的源码也应该有文档,为组件中的类、方法和属性添加行内文档快,说明参数、返回值和可能抛出的异常。

组件推荐

HTTP请求

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,982评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,967评论 1 66
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 十里香风花如海严冬过后总是春五彩纷呈阅不尽鹏城街巷好光景 关注大衍文化
    板凳扫地僧阅读 201评论 0 0