位置: 编程技术 - 正文

自制PHP框架之模型与数据库(php框架yii)

编辑:rootadmin

推荐整理分享自制PHP框架之模型与数据库(php框架yii),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php模板框架,php框架搭建网站教程视频教程,php框架设计模式,php模板框架,搭建自己的php框架,怎么做php框架,搭建自己的php框架,搭建自己的php框架,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是模型?

我们的WEB系统一定会和各种数据打交道,实际开发过程中,往往一个类对应了关系数据库的一张或多张数据表,这里就会出现两个问题。

1.类和数据表,一方修改会导致另一方的修改,只要数据表结构不定下来,业务逻辑的开发几乎没法开工

2.获取数据时会牵涉很多SQL语句的拼接,如果数据结构变动,这些SQL需要改写

假如要开发一个博客系统,我们先设计两个Model和两张数据表

第一张数据表,表名是post,存储了博客文章,数据如下:

第二章数据表,表名是comment,存储了博客文章的评论,数据如下:

post和comment是一对多的关系,每一篇博客文章对应了多条评论,每一条评论只属于一篇文章。

自制PHP框架之模型与数据库(php框架yii)

Model类的设计之前,我们先定义好三个接口

定义Model类

这三个接口分别负责了三种查询:遍历查询,条件查询,按编号查询,其实这三种接口的设计并不是最科学的,甚至get方法不过是where的一种特殊形式,但是这样的设计并不影响我们工程,甚至也有助于理解,我们后期会对这段代码做改动。

之所以在Model类里就完成了SQL的拼接,就是希望在子类中不必重复再写SQL。

然后是Post类的定义

还有Comment类的定义

我们可以在控制器的方法中写这样的代码来完成调用数据

我们发现,这样的代码很简洁,但是问题也随之而来,我们SQL查询时候,还有很多复杂的联表查询如join操作,如此,拼接SQL还是不可避免的,这个复杂的问题,我们放在后面解决。

模型与数据库

先写一个DB抽象类,规定类需要实现的方法

这里以MySQL数据为例,当然你也完全可以实现一套Sqlite数据库的接口。

谈到数据库类,上述的写法仍不是最好的,因为我们可以使用单例模式来保证DB类只有一次初始化,来节省硬件资源的开销,但这不是本节的主题,我们把设计模式放在之后来谈。 

自制PHP框架之设计模式 为什么要使用设计模式?设计模式,我的理解是为了达到可复用这个目标,而设计的一套相互协作的类。感兴趣的读者可以阅读《DesignPatterns:ElementsofReus

PHP中include和require的区别实例分析 先编辑command.php文件echo'hello'.PHP_EOL;然后编辑console.php文件for($i=1;$i=3;++$i){require'command1.php';}原本想要包含并执行这个echo,没想到写错了文件名,如果是req

Laravel实现autoload方法详解 用了一阵Laravel后发现很少有include和require,觉得有点奇怪,思考Laravel是怎么完成文件导入的。其实Laravel依旧还是用include或者require的,只是都写在一个

标签: php框架yii

本文链接地址:https://www.jiuchutong.com/biancheng/290933.html 转载请保留说明!

上一篇:自制PHP框架之路由与控制器(搭建自己的php框架)

下一篇:自制PHP框架之设计模式(php框架开发教程)

  • 税收会计在会计中的应用
  • 进口关税和增值税可以抵扣吗
  • 什么是库存现金的盘亏
  • 税率变更后账务怎么处理
  • 结转累计折旧分录
  • 资本公积转为实收资本会计等式
  • 股东退股分红怎么拿回
  • 社团会费收取标准和管理办法
  • 企业销售现金折扣
  • 图书出版行业做账流程
  • 营业收入不开发票
  • 增值税普通发票怎么开
  • 应税凭证和纳税凭证的区别
  • 营改增前取得的不动产出售的计税方法
  • 长期待摊费用涉税风险应对
  • 调整期初数怎么做会计分录
  • 冲红的进项税发票入账处理
  • 供应商的账怎么记
  • 租税联动政策
  • 库存月底怎么一次性结转成本?
  • 专项应付款会计科目代码
  • 幼儿园开发成本
  • 厦门新车购置税计算
  • 简易征收发票能抵扣吗
  • 票据状态提示付款
  • 华为鸿蒙系统怎么样
  • 电脑怎么备份系统win7
  • 个税手续费返还属于政府补助吗
  • win10平板模式不好用
  • 华为手机隐藏应用
  • Uncaught TypeError: XXX is not a function问题解决方法
  • 企业优惠促销活动中的税收筹划
  • macos big sur 电池
  • 付的押金冲抵部分怎么算
  • 融资租入资产的入账价值可能是()
  • 销售商品的会计分录已收到钱
  • 房地产企业增值税扣除土地成本
  • php获取访问者mac地址
  • 0.96寸OLED显示汉字
  • acc字幕文件怎么转换srt字幕
  • vue中使用jsx语法
  • node-js
  • 进项税额转出结转会计分录怎么写
  • 用友重新安装步骤
  • 阿里云主机安装软件
  • 海洋cms有安卓版下载
  • 科研项目财政拨款怎么算
  • 获取sqlsession
  • sql server 2008使用
  • 交强险还要交车船税?
  • 什么叫金税四期呢?
  • 企业出租房产增值税怎么计算
  • 小规模纳税人的增值税怎么算
  • 顺流交易和逆流交易会计分录
  • 什么是全面预算控制?全面预算控制的作用有哪些?
  • 营改增试点纳税人提供技术转让
  • 备用金超过时间会怎么样
  • 既有从价又有从租如何计算房产税
  • 差旅费账务处理的摘要
  • sql服务在哪
  • 戴尔笔记本电脑开不了机
  • winxp系统介绍
  • Win10 Mobile RS2预览版14926已知问题和解决方法汇总 谨慎升级
  • win7无网激活
  • 如何刷硬盘使用时间
  • win7安装要求配置
  • css图片标签
  • Unity3D游戏开发引擎
  • jquery滚动到底部
  • nodejs怎么实现多线程
  • 原生js实现ajax步骤
  • shell脚本-lt
  • unity网格地形
  • array 和list
  • android系统虚拟机
  • python语言中
  • Android之Broadcast与BroadcastReceiver
  • 公务员中了彩票怎么领取
  • 目的地查验和口岸查验费用一样吗
  • 残疾人就业有哪些选择
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设