《PHP挖宝》0—序章

    科技2025-08-12  9

    《PHP挖宝》0—序章

    文章目录

    《PHP挖宝》0—序章本专栏理解的”现代框架“选什么框架来讨论

    《PHP挖宝》专栏入口地址

    本章节将向读者介绍整个专栏的叙述逻辑,展示选题和选择的一些观点等。同时,对于概念定义和观点的不同,可能会引起不友好的争议,本章节也用来说明澄清相关定义和观点。

    本专栏理解的”现代框架“

    这里的”现代框架“是指,设计成熟完善新颖主流的、使用比较广泛的、较近发布的、普遍使用了PSR各种规范的、有自动加载依赖、生命周期管理的等特性的框架。例如:Symfony 5、Laravel 5、 ThinkPHP 5 以及它们的最新版,这些都是本文理解的”现代框架“,并非单纯只是个MVC框架。”现代框架“只是一个代名词,不需要抓住什么是”现代“来逐字讨论,现在你知道笔者所说的”现代框架“是指拥有上面这些特点的框架就可以了。

    选什么框架来讨论

    本专栏会讨论Symfony、Laravel、ThinkPHP、Swoole等这几个比较有名的框架。很重要的原因是,它们历史悠久、使用群体庞大、里面蕴含精华非常多。鉴于这样的特点,笔者才疏学浅、略懂皮毛,只能班门弄斧说几句,但我想这并不妨碍我学习这些框架并带来一些启发。

    Symfony:PHP框架的老祖宗,连Laravel都有大量Symfony的影子,使用了大量Symfony框架自带的组件。很大一部分原因是它的设计思想很特别,一开始就把诸多功能设计成可插拔的组件化,以至于其他框架也能快速方便使用它们家的组件。不过,Symfony的设计既成熟完善也很复杂,尤其是结合PHP7强类型的方式来开发时,常常会有正在开发JAVA项目的错觉,使用成本感觉有点高。因此,这个框架将是本专栏学习的一个重要材料。Laravel:”性能是什么?优雅就完事了!开发效率快就行了!“,这估计是Laravel圈子里讨论最多的一类观点。本专栏不会去讨论这些,毕竟大家自有公论,更多的重点会放在学习它的框架设计并带来启发。Laravel设计了很多巧妙的语义化的魔术方法、门面方法(门面模式,Facade Pattern)来帮助开发者快速使用框架功能。降低框架学习和使用的复杂度,也减少了记忆负担。凡是都有不过,Laravel默认启用了很多中间件,会导致框架运行效率下降,在很多中小项目中并不需要用到这些中间件,可以通过进一步了解后将其禁用来提升性能。ThinkPHP:笔者经历了3.2、5.x的时代,目前版本是6.0.x。在3.2的时候,没有使用Composer来管理项目,自动加载和MVC的实现方式在今天来看来算是比较落后的。然而,在我看来,它却是一个时代的经典,因为很粗暴地向开发者们展示了,PHP的MVC框架是如何完成各项功能的。而很多现代框架,使用了大量设计模式、魔术方法、注解(PHP没有注解功能,是三方包实现的)来实现各种魔法般的功能。于是到了5.x的时代,笔者正好也在使用Laravel,不禁感叹道,ThinkPHP借鉴了非常多Laravel的用法或者实现方法,但又保留了自己的高性能快速的优点。至于6.0之后的版本,笔者工作没有用过,不过我希望能在本专栏编写过程中,和读者一起学习分析其中的精华。
    Processed: 0.010, SQL: 8