PHP后端(三):框架的选择

对于开发经验不那么多的人而言,选择一个框架进行开发是十分重要的,直接用原生的语言开发就像从零开始建造房子,要完完整整地开发出一个稳定、安全且性能又好的后端,需要你对整个语言特性和架构有着极深的理解,这显然不是对一个新手的要求。而使用框架则像是装修一套二手房,是在别人给你打好的基础上进行开发的,这样不仅能够大大地提升开发效率,还能使你的代码变得精简,易于维护,以及使你的项目具有一定的稳定性、安全性等特质,所以选择一个好的框架进行开发是十分有必要的。

PHP主流的框架还是蛮多的,CodeIgniter、ThinkPHP、CakePHP、Zend Framework、Symfony、Laravel、Yii 等,都采用了传统的MVC模式,将业务模型层(Model)、用户界面层(View)、控制器层(Controller)分离,让模型层专门处理数据逻辑部分,让视图层负责数据的展示,让控制器层负责用户交互部分。有的还支持最新的MVVM。

可惜我学识尚浅,只使用过 ThinkPHP3.2 和ThinkPHP5,对别的框架也只是粗略地了解,所以以下大部分观点都是我去查找资料然后整合的,如果不恰当,希望能够得到您的指正。我觉得,这些主流的框架都能分为三类:适合小型应用的、适合中型应用的和适合大型应用的。

最适合简单的小型应用的无疑是 CodeIgniter 了。CodeIgniter 的设计最为简单,没有花哨的设计理念,能够较为全面地满足基本需求,起步非常容易,很适合快速搭建小型应用,不过缺乏扩展能力,也仅仅只适用于小型应用。

适合中型应用的框架常见的有 ThinkPHP 、CakePHP 、Zend Framework 和 Laravel。

ThinkPHP是一款国产的面向对象的轻量级框架,十分的简单,还有着很完整的中文文档和社区,对入门者十分友好,容易上手。经典的 TP3.2 和 TP5 ,只要从网上下载源码,就能够直接使用了,省去了复杂的安装等过程,非常适合入门使用,也适合中小型项目的开发。还有较为适合中大型项目的TP6。

CakePHP 设计优雅,功能和库都很纯粹,一点都不多余,且功能强大,能够满足大部分开发需求,可扩展性强,执行效率也很不错。操作数据库的能力很强,不过有点影响别的能力。还有一个缺点是不支持面向对象,所以只适合中型应用,不太适合大型应用。

Zend Framework 的设计理念比较复杂,对开发者的要求较高,较难学习,不太适合入门。不过ZF具有丰富的组件库,可以实现非常多的功能,适合中大型项目的开发。而且ZF是官方出品,再加上强大的类库,似乎未来的发展不可小觑。

适合大型项目的框架有 Symfony、Lavarel、Yii 等。大多数中型和大型的框架都支持 Composer(PHP包管理工具)进行安装、扩展、管理。

Symfony 的功能十分地强大,几乎所有你需要的东西,它都帮你封装好了。它还有一大特点就是将Class类组件化模块化,不仅可以随意定义各种自己的class,而且 Symfony 能够自动加载这些class,在程序中随意调用,代码复用率极高。Symfony 还支持多人协作开发,很适合开发复杂的大型项目。还有强大的命令操作,也是一大亮点。不过 Symfony 较为复杂,且国内的文档和社区都不是很成熟,学习成本很大,还有不高的效率和虽然强大但是无法控制的缓存功能的缺点。

Lavarel 是2015年才刚刚诞生的新型框架,有着优秀的中文文档和社区,且扩展包非常非常丰富,几乎任何功能都可以用扩展包实现,再加上其先进的设计思想和特性,一经推出就非常火爆,近些年更是直接成为了最受欢迎的PHP框架。相较于其他两个框架,更容易学习,且资源丰富,也能完美地适用于中型项目的开发。

Yii 是性能最强大的PHP框架,效率非常地高,Yii 采用严格的OOP(面向对象编程Object Oriented Programming),支持composer和命令行,开发速度和运行速度都很快,性能优异且功能强大,不过中文教程不多,而且对 PHP 和 OOP 的要求较高,学习起来比较困难。

总结一下:PHP的框架十分的丰富,不论是小中大型项目,都有合适的框架,且学习起来难度不大,毕竟PHP本身就比较简单,且比较热门,学习资源较多。个人感觉,对于新手来说,还是 CodeIgniter -> ThinkPHP -> Lavarel 这条路线会比较适合,如果你都掌握了这三个框架,能够开发大型项目了,那就是另一番天地了!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注