创新实训(四)——model文件夹下的类管理

model文件夹

model文件夹下存储的是一些相关类的php文件,在HTML文件生成的时候,利用这些类能够高效地辅助文件与文件之间的调度转换。文件夹下的内容如下:

这里列举一些重要的类文件:

Route.php文件

前文中在实现 route.php 的路由调度过程中有出现使用类Route的情况,实际上就是调用这里的类Route的相关方法去实现的。这个 Route 类是一个简单的路由器,它可以用于处理基于 URI 和 HTTP 方法的请求路由。它支持添加、匹配和分组路由,以及定义参数模式。下面介绍一下部分重要属性和方法:

Route.php文件的部分属性

  • protected static $routes: 存储所有注册的路由。
  • protected static $patterns: 存储所有自定义的参数模式。
  • protected static $groupStack: 存储当前的路由组属性。

match 方法

代码截图如下:

match方法将指定的 HTTP 方法、URI 和处理动作添加到路由中。其中,array_map('strtoupper', (array)$methods) 将方法名转为大写,便于规范匹配。

any 方法

代码截图如下:

any方法支持任意 HTTP 方法的路由,保证前端调用的时候能够保证所有的基本请求方式都能使用。

各种 HTTP 方法的快捷方式

代码截图如下:

将不同的 HTTP 方法打包在 Route类中,方便实现调用。

group 方法和 getGroup 方法

代码截图如下:

group 方法中,定义一个路由组,将传入的属性和当前组的属性合并,然后执行回调函数。其中,array_pop(self::$groupStack) 在执行完回调函数后恢复上一个路由组的属性。
getGroup 方法则是用于获取当前的路由组属性。

addRoute 方法

代码截图如下:

该方法将一个新路由添加到 $routes 数组中,便于后续对路由的检查。

checkRoute 方法

代码截图如下:

该方法检查当前请求是否匹配某个路由,并匹配请求方法。同时,使用定义的参数模式替换 URI 模式中的占位符。然后匹配 URI 和域名,如果匹配成功,将匹配的参数存储到 $_GET 中。

DB.php 文件

在编写代码的过程中,如果直接调用php中与数据库相关的语句,可能会导致代码可阅读性差,结构混乱从而加大了系统的维护成本。故使用 DB.php 来统一管理与数据库相关的交互操作。DB 类是一个封装了 MySQL 数据库操作的静态类,用于简化数据库操作并提高代码的可读性和可维护性。它使用 PHP 的 mysqli 扩展来与 MySQL 数据库进行交互。下面介绍一下部分重要属性和方法:

初始化数据库连接

初始化Init方法的具体代码如下:

该方法初始化与 MySQL 数据库的连接,并存储在全局变量 $uojMySQL 中。并且,使用 mysqli_connect 函数连接数据库,如果连接失败,输出错误信息并终止程序。

SQL 注入防护

escape 方法的具体代码如下:

该方法使用 mysqli_real_escape_string 函数对输入的字符串进行转义,以防止 SQL 注入攻击。

数据提取方法

fench 方法的具体代码如下:

该方法从查询结果集中获取一行作为关联数组或数字数组。

基本数据库操作

基本的增删改的实现,这里仅给出实现代码,代码如下:

数据选择方法

代码如下:

  • select 方法执行查询并返回结果。
  • selectAll 方法返回查询结果中的所有行。
  • selectFirst 方法返回查询结果中的第一行。
  • selectCount 方法返回查询结果的行数。

检查表是否存在

checkTableExists 方法的具体代码如下:

该方法通过尝试查询表中的一行数据来检查表是否存在。

行数和受影响行数

num_rowsaffected_rows 方法的具体代码实现如下:

其中,num_rows 方法返回结果集中行的数量,affected_rows 方法返回上一次查询中受影响的行数。

posted @   山城甘草  阅读(51)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示