- 市面上已经有许多优秀的框架比如Laravel,Symfony,CakePHP,Yii,ThinkPHP等等
- 为什么开发属于自己的php框架?为什么不用现成的呢
- 其实这是一个快速积累知识的过程,可以快速发现自己的不足,以及学到一些自己未发现的知识点
- 并且我这样可以完全控制自己写的框架,并将自己的想法加入到开发的框架中
- 比如添加功能的时候,需要自己实现所有的能实现的组件,比如文件上传,错误处理等等
- 肯定是比不上一些主流的框架的,但是可以按照自己想法去开发功能和模块
- 其实无论从结构、思考还是思考上,编出主流框架的他们才是真正的大师,我自己开发的框架只是一个垃圾
- 但至少通过编写框架至少有了自己的思考,提高自己的创造力以及独立思考的能力,可以认识大量的内置函数
- 运行别人框架时候不是这边有问题就是那边出现了错误,修复完成一个又出现一个
- 以前只想着如何使用它,如何将别人的程序整合到自己代码上,也就是复制别人的代码,时间长了,别人框架的类都不清楚
- 于是开始查看网上的教程看一下框架的组成跟工作流程来自己编写
- 刚开始写一个数据库配置函数到数据库连接,再到数据库的封装,以及后面的数据库引用,再到前端页面模板的编写
- 后面实现模板的页头页脚分类,然后又编写控制器的请求截取,再到静态文件的分类
- 比如2020年12月9号实现的分离js跟css,当然后面也把大量引入所有js文件
- 变成了通过接口给每一个不一样的页面引入自己需要的文件
- 1.png
- 也就是不用这种方法来进行引用了,因为毕竟,有一些页面根本不需要这一些js或者css
- 这样子又浪费http请求数,又延迟页面的加载速度
- 1.png
- 例如文章索引页就引入分页js,css样式,文章详情页就引用阅读时间计算,字数统计等
- 后面也就是在修复各个程序相互调用的优化,使其相互之间工作更加协调,不得不说开发自己的一个框架真的是又疲惫且又开心
- 当然开发一个自己的框架也是荒废大量时间精力,同时也得到不少知识
- 一些朋友也知道我也挺喜欢玩游戏的,为此我还为自己搭建了蛮荒极地的公益服,比如饥荒,我的世界
- 说真的没开发框架之前,我基本上,放假或者休息都会在游戏服务器内玩耍
- 哪怕是只有我一个人在游戏内,我也可以通宵玩一晚上,编写框架后基本上就没什么时间玩了
- 每天下完班,回到家已经是精疲力尽,然后又编写框架中各个程序,一边编写一边摸鱼
- 编写框架如果有大量时间或者一个团队可能就开发速度快了,现在我再来说一下框架的基本内容跟运行方式
- 由于我是拿自己开发的框架跟网上查询的资料来解释的,所以就不写出详细的代码介绍了
- 毕竟的写的代码漏洞百出,很多地方程序可以运行但是就是报错
- 所以我使用了一个非常非常懒人的方法就是用php的万能屏蔽法error_reporting(0);,只要我看不见就是没问题
- 如果写出来,我怕自己的网站有可能又会被别人攻击,我会笼统的解释一下我框架的程序分类,每个程序执行的工作以及每个程序类型的介绍
- 框架一般拥有以下这几个分类目录
应用代码 程序配置或数据库配置 框架核心目录 静态文件 临时数据目录 命令行工具
- 在目录设置好以后,我们接下来就需要一个程序拥有一个单一的入口
- 除静态程序,其他所有程序都重定向到index.php上,这样子可以生成利于SEO的URL
- 入口文件内容为
应用的目录 网站根URL 框架
- 入口文件不要添加PHP结束符号?>,这样子可以很大程度上防止末尾被添加额外的注入内容,让程序更加安全
- 在 入口文件 中,我们对框架文件夹下的框架发起了请求
- 那么框架应该包含的内容为
初始化常量 包含配置文件 包含核心框架类 实例化核心类
- 配置文件主要作用是设置一些程序的配置项及数据库连接,内容并不多,只是一些基础数据库的设置
- 框架入口文件文件内容为
路由处理 通过获取控制器名执行任务 通过获取URL参数传达需要内容 然后就是一些判断了,判断数据是否为空,控制器存和动作存不存在,过滤敏感字符
- 控制器文件内容为
构造函数,初始化属性,然后分配变量渲染视图过滤敏感字符
- 模型文件内容为
连接数据库判断数据库表名与类名一致
- 模型文件又需要接口来对数据库进行处理,也就是数据库基类
- 文件内容为
连接数据库 删除添加查询修改搜索数据库字段
- 视图模板就是前端渲染显示,比如页内容文件,页脚文件
- 视图模板又包括页头页脚模板
- 页头模板输出以下的<body>内容,包括</head>内js,css的调用
- 页脚模板输出以上的</html>内容,页脚的信息显示,比如什么联系方式呀,版权所有呀,包括</body>内js,脚本执行的内容
- 后面就是应用测试了,测试你写的代码有没有生效,比如测试前查看前端显示有没有问题
- 部署数据库后,数据库执行删除记录,修改记录,查询记录,添加记录,有没有问题
- 各部分的工作内容为
- 模型
- 管理大部分的业务逻辑和所有的数据库逻辑
- 控制器
- 负责响应用户请求、准备数据,以及决定如何展示数据
- 视图
- 负责渲染数据,然后呈现给用户
- 框架流程为
- 控制器截获用户发出的请求,然后调用数据库基类模型完成状态的读写操作,再把数据传递给视图,视图渲染最终结果并呈献给用户
- 懒得写了,就先写这么多罢了,闲的蛋疼再补充了,还是先去修复我框架的漏洞算了
【开发属于自己的php框架(框架工作流程以及分类详谈)】
qaq卟言2021-02-12 14:25:24
PHP
开始
完结