php开发属于自己的框架(02使用框架的好处)
2023-10-11
phpphp高级程序设计:模式、框架与测试,世界上最好的语言
PHP是一种非常优秀的编程语言,广泛应用于Web和互联网领域。 PHP框架会提高你的开发效率,自己构建自己的框架有益无害。 建议大家一起搭建这样一个框架。 虽然是“造轮子”,但是写轮子的目的并不是为了造轮子而是为了熟悉造轮子的流程,总结轮子的特点,更好的使用轮子。 。
开发自己的框架
2. 概述框架
[01 当前帧]:
第一个推荐的是Yii,它的设计思想和对工程实践的支持超过了几代人。 如果原生 PHP 是一支滑膛枪、步枪或冲锋枪。 如果你想去打猎,带一支步枪就足够了,但如果你想去战场,就必须有一把自动冲锋枪。
php框架分享
可见大家都很佩服。 其实我没用过,但是很向往。 我使用过CI框架,我认为它小巧、优雅并且非常令人兴奋。 国内一些创业公司、腾云网络和开源项目都大量使用,而且也还不错。 腾云网络现在用的是自己的框架,MVC是一定的,还有分层、工作单元和ORM。 现在还引入了命名空间和管理。 可以说也是与时俱进,挺好的。
第一帧
【02 使用框架的好处】:
1)做包管理
2) 标准实现可以让`xxx.php`成为历史
3)各种依赖注入(将创建对象的权利交给框架)
4)ORM支持
5) 易于使用的命令行和脚手架
6)丰富的文档和活跃的社区
说白了就是去做
3. 开发自己的框架
我的框架地址: ,目前是一个非常简单粗暴的PHP框架,后续会不断更新和填充。
整体框架图
【01整体框架】:
首先我们总结一下PHP的MVC框架的工作流程:
简单来说,它使用一个入口文件来接受请求、选择路由、处理请求并返回结果。
当然,几句话概括出来的东西,其实是需要做很多工作的。 PHP框架每次接受请求时都会定义常量、加载配置文件和基础类,根据访问的URL进行逻辑判断,选择对应的(模块)控制器和方法,并自动加载对应的类。 框架处理完请求后,会选择并渲染相应的模板文件,并以html页面的形式返回响应。 在处理逻辑时,还应该考虑错误和异常处理。
我的.php的入口文件
【02命名空间&自动加载】:
1)命名空间:解决类名重复的问题。
2)自动加载:避免了很多,解决了类之间的依赖关系,这样在实例化一个类的时候,就不用关心它所依赖的类了,因为使用r()函数,它可以注册多个函数为了替换函数 的功能,我们传入一个名为参数的函数,r 会将这个函数压入堆栈。 当实例化当前路径中找不到的类时,系统会将函数从栈中弹出并依次调用,直到实例化成功。
路由选择的本质是根据当前定义的全局URL模式选择合适的方法来分析传入的URI,加载相应的类,并实现相应的方法。
路由类
【03查看实现】:
访问链接为:,控制器为app//.php,视图文件为app/view/.html,赋值方法()、显示方法()继承于父类\core\。
整个实现比较简单,后续要实现的功能,比如安全过滤、拦截器、钩子等后续实现。
控制器和视图文件
【04模型实现】:
这个模型的实现不是很彻底,因为SQL和相关查询出现在控制器中。 标准的写法是写一个php高级程序设计:模式、框架与测试,调用里面的方法,进行数据库相关的操作。 当然,数据库配置也可以通过配置类进行配置。
后续需要改进的地方:
✔️可以打印出执行的sql
✔️可支持多个数据库的配置链接
✔️实现ORM网站开发seo优化,将实体的增删改查映射到数据库。
数据库模型实现
【05 包裹管理】:
它是一个PHP第三方资源包管理器。 它很受欢迎,也在框架中实现。 今天我们在自制的框架中也用到了它。需要做以下三个任务:1)下载2)安装3)使用
1)下载:
卷曲-sS| php
下载后是.phar二进制包
2)创建.json文件:
内容如下:
.json
换成国内的镜像包,不然会很慢。 参考:
.json末尾添加的声明项。
3)生成包含第三方类库的文件夹:
.phar
然后将上述代码添加到框架的入口文件.php中即可使用第三方类库。
(“/.php”);
比如我这里加载的第三方输出类的var-就使用了它的打印函数dump()。 打印出来的结果是黑底白字的风格,而且还支持折叠,非常不错。
4.写在最后
本文实现了一个非常简单,甚至粗陋的框架。 框架本身并不重要。 关键是要理清框架的思路,加深对Web开发的理解,同时最好能把一些流行的技术应用在里面。 框架未来会不断更新和完善,期待大家分享自己的框架,加油!
拜托了伙计们