PHP开源项目一下三件事解析请求、三个框架的能力
2021-08-26
本文着眼于读者的需求,不断更新
首先建议学习一个基于PHP的web框架
建议先学习几个框架,Yii2、,
PHP 是为 Web 应用程序而生的。几乎所有知名的 PHP 项目都是 Web 应用程序。任何 Web 应用程序或多或少都依赖于一个 Web 框架,无论是项目本身构建的轮子,还是基于其他框架的项目。
所以,学习PHP开源项目,最重要的就是学习PHP框架。
简单来说,PHP Web 框架的一个必要组件会做三件事:
解析请求,获取输入定位执行器,执行响应后将输入发送给指定的执行器执行输出,获得输出
以上三点其实都和MVC有关。对于web框架,除了MVC和View之外,没有一个MVC是框架自带的,可以用其他独立的开源组件代替。
为什么要同时推荐 Yii2、 和三个框架?因为这三个框架各有特点,相辅相成,共同学习后,对理解其他PHP开源Web项目会有很大帮助。吸取了各个框架的精华后,使用任何框架的能力都可以得到很大的提升。给大家解释一下。
先说说 Yii2
Yii2 的优点是简单易懂。因为的代码,使用了很多中间件和事件驱动的概念,你会发现从入口.php中很难知道如何调用某个特定的,因为它是发现并调用了Web框架的核心功能,如果这很难理解,就很难真正掌握框架本身,而Yii2的优势就体现在这一点上。
理解Yii2的执行过程很简单。从.php进入后,首先会看到读取的配置文件,通过配置文件进行初始化,调用run方法。在run方法中,可以清晰的看到采集和处理的过程。在处理过程中,先分析获取,再根据发现,执行过程也很清晰。
Yii2 的另一个特点是类继承的广泛使用。首先定义了\yii\base\类,定义了构造函数和魔术方法等。在\yii\base\的基础上扩展为\yii\base\类,添加事件和特性来扩展类的能力。在\yii\base\扩展为\yii\base\类的基础上,增加了属性校验功能,用于接收和校验外部输入。基于\yii\base\扩展为\yii\db\,用于添加数据持久化和相关数据获取功能。
这种基于渐进式集成的扩展,可以清晰地定义每一层的功能,方便用户理解,并且允许用户选择性地扩展自己的类php开发框架流行度排名,有点类似于典型的java应用。但是,这也有明显的缺点。因为基于 Yii2 的开发或多或少需要继承 \yii\base\ 类,所以这些开发的输出,包括扩展、模块,很难与其他框架兼容。正因如此,Yii2社区中创建的东西的影响力无法传播到其他框架的用户,导致其知名度低,基础高。如果大家有兴趣,我会在后面介绍如何在Yii2中借用和写出更好的代码。
Yii2 被称为开箱即用的 Web,一站式 Web 框架,它是有道理的。一方面,框架本身就包含了构建网站所需的各种功能,无需到处选择合适的组件来创建自己的应用程序。另一方面,一旦选择了这个框架,它就取决于整个框架。仅使用框架的一小部分或将现有工作迁移到其他框架是困难的。
Yii2 与 , 的意识形态对比
我们在生活中会遇到很多人,听过很多意见,也有过很多讨论。渐渐地,我发现人与人之间的区别,其实就在于价值观、世界观和人生观。
一个人之所以会这样,是因为他先有一些经验,根据这些经验总结出一些规律,并根据规律提出一些假设,然后他会不断验证和确认提出的假设。这些假设虽然不正确,但决定了大多数人的行为方式。同一个群体的人互相影响,假设变成意识形态。
这一段为什么这样开头,看完下面的对比你就明白了。
虽然我还没有介绍和,但我想用一些框架和社交系统来做一个类比,帮助你有个基本的了解。
Yii2 社区就像一个中心化的社会。大哥会为您处理所有大事。社区的工作以老大哥为中心。大哥会负责版本迭代的兼容性。在工作中,社区也会做他们需要的扩展,但是你专门为大哥做的扩展在其他社区很难轻易使用,也很难扩大他们的影响力。当然,事情不是一成不变的。核心团队和社区也意识到了这个问题。 Yii3 正在尝试将框架拆分成独立的部分,遵循 PSR 等一定的标准,将框架转变为一个可以独立使用的基于组件的框架。
而且他就像一个去中心化的社会,你可以把我当成一个框架,但是这个框架的概念其实是由几个可以单独使用的小组件组合而成的,其中一个把其他的组件组织起来就成了一个框架。虽然不需要使用整个框架,但可以使用框架的一部分。小部件可能功能不全,您可能不喜欢里面的小部件php开发框架流行度排名,但您可以找到您喜欢的小部件的替代品。至于你找到的那个好不好,你自己去琢磨。至于我的版本迭代的兼容性,我不保证。
那为什么这些框架会有这么大的区别呢?因为这些框架是由不同背景的人制作的,所以不同背景的人有不同的意识形态。
Yii 的创始人薛是中国人。目前,Yii 有一名全职开发人员,他是俄罗斯人。我们知道,在全球所有活跃的开发者社区中,中国和俄罗斯社区最受欢迎。不难理解,Yii2 也体现了集体主义的意识形态。
创作者
是土生土长的美国阿肯色州人,现任主力后卫是比利时人。相对而言,这是一个自由和去中心化最为重要的国家,也不难理解,它处处体现着去中心化的思想。
插页式广告:开源项目的可持续发展仅靠社区是很难的,特别是考虑到Yii3的进展并不如预期,所以我们发起募款支持某人,以确保Yii的发展全面-时间。也希望能号召像我们这样的Yii用户受益人捐款,支持Yii社区越来越好。
那就说说吧
//待办事项
最后介绍
//待办事项
几个优秀的PHP开源应用项目
渐进式和深度学习可以产生真正的见解,否则知识将浮出水面。说完框架,我觉得最好的办法就是趁热打铁,学习基于这些框架的优秀开源项目。我选择了三个我熟悉的项目给大家做一个基本的讲解,希望能帮助大家获得更多的见解。
基于 Yii2
//待办事项
基于
//待办事项
基于
//待办事项