浅谈PHP组件、框架以及Composer
本篇文章主要介绍了PHP组件、框架以及Composer,具有必然的学习价值,感兴趣的伴侣可以了解一下。
什么是组件组件是一组打包的代码,,是一系列相关的类、接口和Trait,用于辅佐我们解决PHP应用中某个具体问题。例如,你的PHP应用需要收发HTTP请求,可以使用现成的组件如guzzle/guzzle实现。我们使用组件不是为了从头实现已经实现的成果,而是把更多时间花在实现项目的久远方针上。
优秀的PHP组件具备以下特性:
感化单一:专注于解决一个问题,而且使用简单的接口封装成果
小型:小巧玲珑,只包罗解决某个问题所需的最少代码
合作:PHP组件之间可以良好合作,组合在一起实现大型项目
测试良好:自己供给测试,而且有充沛的测试笼罩度
文档完善:应该供给完善的文档,能让开发者等闲安置、理解和使用
组件 vs 框架我们选择框架时,要为这个框架的工具投入很多,框架凡是会供给大量工具,但却没有供给我们所需的某个工具时,痛苦就转嫁到我们头上,我们要寻找并集成自界说的PHP库。把第三方代码集成到框架中是件难事,因为第三方代码和框架可能没有使用不异的接口。
选择框架时,我们看中的是框架的未来,但是谁又能保证某个框架始终是完成某项事情最好的工具呢?存在多年的大型项目必需有好的表示,而且要时刻做好调解,如果选错了PHP框架,可能无法做到这一点。较旧的PHP框架可能由于缺乏社区撑持而变慢或过时,这些旧框架凡是使用过程式代码编写,而没有使用新式的面向东西代码以及PHP的一些新特性,总之,决定是否使用PHP框架时,要考虑的工作很多。
庆幸的是,Laravel在这些担心方面表示良好,因此才华在众多PHP框架中脱颖而出,从某种意义上来说,Laravel也是个基于组件开发的框架(核心组件是自身的Illuminate库,成果实现上则大量依赖第三方组件),对比Symfony而言,上手又对照简单,所以兼具了扩展性和易用性。但是,Laravel也存在一些不敷,好比Laravel自身的组件不能等闲解耦,用于Laravel框架之外(但是相信这种状况会有好转,好比其数据库和行列队伍组件就可以解耦出去)。综合来看,Laravel仍是一个超卓的框架,能帮组我们快速创建强大的应用。
那我们应该使用组件还是框架呢?答案是,使用正确的工具做正确的事,如果能通过一些PHP组件快速实现小型项目,那就使用组件,如果有多个团队成员开发大型项目,而且能从框架供给的约定准则和布局中受益,那就使用框架(如果是在纠结使用什么框架,那么选择Laravel吧,它不会让你掉望),使用框架能够引导并加速项目的开发。
使用组件 Packagist我们在Packagist中查找PHP组件,这个网站用于收集PHP组件,最好的PHP组件在Packagist中都能找到。
好比我们想使用一个http组件用于收发HTTP动静,在搜索框中搜索http,得到的第一个功效就是Guzzle,就用它吧。
ComposerPackagist是查找PHP组件的社区,Composer则是安置PHP组件的工具。Composer是PHP的依赖打点器,运行在命令行中,你报告Composer需要哪些组件,Composer会下载并把这些组件自动加载到你的项目中,就这么简单。
Composer和Packagist紧密合作,如果你报告Composer想要使用guzzlehttp/guzzle组件,Composer会从Packagist中获取guzzlehttp/guzzle组件,找到这个组件的货仓地点,确定要使用哪个版本,还能找出这个组件的依赖,然后把guzzlehttp/guzzle组件及其依赖下载到你的项目中。
别的,Composer会为项目中的所有PHP组件自动生成切合PSR标准的自动加载器,有效地抽象了依赖打点和自动加载,所以,对PHP社区来说,Composer是最重要的附加工具,没有之一,想想之前我们要使用诸如include、require、spl_autoload_register来手动实现自动加载的痛苦日子,这一点也不为过。
关于Composer的安置和使用,这里不赘述,请参考Composer中文网。
示例项目下面我们通过一个示例项目来演示如何使用Composer和组件来开发一个PHP应用,这个应用的感化是扫描一个CSV文件中的URL,找出死链,该应用会向每个URL发HTTP请求,如果返回的HTTP状态码大于即是400,就把这个死链发给标准输出。这是一个命令行应用,开发好之后,我们会执行这个脚本,传入csv文件的路径,在标准输出中显示死链列表。
安置组件温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32623.html