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请求

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容

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