From bb28a07c930561416365b15552b1030523cfa62a Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Tue, 6 Jun 2023 20:24:38 +0800 Subject: [PATCH] update docs --- docs/components/common/global-defines.md | 22 ++++++++++++- docs/components/store/mysql.md | 40 +++++++++++++++++++++--- docs/update/v3.md | 1 + 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/docs/components/common/global-defines.md b/docs/components/common/global-defines.md index 161dd9532..0aee1dd22 100644 --- a/docs/components/common/global-defines.md +++ b/docs/components/common/global-defines.md @@ -213,7 +213,7 @@ container()->get('xxx'); ### db() -获取 Database 操作类。 +获取 Database 数据库连接操作类。 - 定义:`db(string $name = '')` - 返回:`ZM\Store\Database\DBWrapper` @@ -245,6 +245,16 @@ $result = db('mydb')->fetchAllAssociative('SELECT * FROM users WHERE username = var_dump($result[0]); // 假设数据库表只有 id 和 username 两列,这里返回了 ['id' => 1, 'username' => 'jerry'] ``` +有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。 + +### zm_sqlite() + +> 仅限于炸毛框架 3.2.0 及以上版本使用。 + +获取一个便捷 SQLite 模式的数据库操作对象。 + +有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。 + ### sql_builder() 使用 SQL 语句构建器构建一个查询。 @@ -261,6 +271,16 @@ $result = sql_builder('mydb')->select('*')->from('users')->where('username = :us // 结果与上方相同 ``` +有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。 + +### zm_sqlite_builder() + +> 仅限于炸毛框架 3.2.0 及以上版本使用。 + +获取一个便捷 SQLite 模式的数据库 SQL 语句构造器。 + +有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。 + ### redis() 获取 Redis 操作类。有关 Redis 的更多详情和配置,见 [Redis 数据库组件](/components/store/redis)。 diff --git a/docs/components/store/mysql.md b/docs/components/store/mysql.md index 9780c08cb..926d5c692 100644 --- a/docs/components/store/mysql.md +++ b/docs/components/store/mysql.md @@ -13,7 +13,7 @@ | 1 | jack | man | 2021-10-12 | | 2 | rose | woman | 2021-10-11 | -## 配置 +## 连接池 炸毛框架的数据库组件支持原生 SQL、查询构造器,去掉了复杂的对象模型关联,同时默认为数据库连接池,使开发变得简单。 @@ -46,9 +46,9 @@ $config['database'] = [ 在设置了 enable 为 true 后,将创建对应数据库的连接池。在框架所有插件加载后启用前会创建连接池。 -## 执行 SQL 语句 +## 连接池模式 -框架对于不同种类的 SQL 采用了统一的 wrapper 层,保证不同数据库调用时的接口尽可能相同。获取数据库操作对象很简单,通过方法 `db()`: +框架对于不同种类的 SQL 采用了统一的 wrapper 层,保证不同数据库调用时的接口尽可能相同。从连接池拿取对象很简单,通过方法 `db()`: ```php // 获取 default 名称的数据库连接 @@ -57,6 +57,34 @@ $db = db(); $sqlite = db('sqlite_db1'); ``` +返回的对象为 `DBWrapper` 对象。 + +## 便捷 SQLite 模式 + +对于 SQLite 数据库来说,使用连接池可能较为笨重,而且在开发者使用框架开发炸毛框架的插件分发时,可能需要使用 SQLite 数据库,但是又不想使用连接池。 + +框架在 3.2.0 版本开始提供了便捷 SQLite 访问,无需任何配置,仅需 `zm_sqlite('dbname.db')` 方式即可创建和访问一个 SQLite 数据库。 + +```php +// 连接一个 SQLite 数据库,在相对路径下,文件会保存到 zm_data/db/ 目录 +$db = zm_sqlite('a.db'); +// 连接一个 SQLite 数据库,可以是任意绝对路径 +$db = zm_sqlite('/home/zhamao/a.db'); +// 在连接 SQLite 文件时,如果设置了 create_new 参数为 False,文件不存在时将会抛出异常 +$db = zm_sqlite('a.db', create_new: false); +// 在连接 SQLite 文件时,如果设置了 keep_alive 参数为 False,框架将不会缓存已经打开的 PDO 对象,而是每次都会重新打开。(默认为 True,为了提升性能) +$db = zm_sqlite('a.db', keep_alive: false); +``` + +返回的对象为 `DBWrapper` 对象。 + +::: tip 提示 + +无论是使用连接池的 `db()` 还是便捷 SQLite 模式的 `zm_sqlite()`,获取的都是 `DBWrapper` 对象,文档只是为了书写方便。 +实际使用过程中如果要使用便捷 SQLite 模式只需将 `db` 替换为 `zm_sqlite` 即可。 + +::: + ### 执行预处理 SQL 语句 预处理查询很巧妙地解决了 SQL 注入问题,并且可以方便地绑定参数进行查询。 @@ -241,13 +269,17 @@ $resultSet = sql_builder()->select(['username', 'gender'])->from('users')->where ### 获取 SQL Builder -使用全局函数 `sql_builder()` 即可。 +连接池的访问模式,使用全局函数 `sql_builder()` 即可。便捷 SQLite 模式,使用全局函数 `zm_sqlite_builder()` 即可。 ```php // 获取 default 名称的数据库连接的 builder $queryBuilder = sql_builder(); // 获取对应名称的数据库连接的 builder,名称等于上方配置中的键名 $queryBuilder = sql_builder('sqlite_db1'); +// 使用便捷 SQLite 模式获取 builder +$queryBuilder = zm_sqlite_builder('mydb.db'); +// 在使用便捷 SQLite 模式时,也可以传入 create_new 参数和 keep_alive 参数 +$queryBuilder = zm_sqlite_builder('/home/a/d.db', create_new: false, keep_alive: false); ``` ### 构建一个普通查询 diff --git a/docs/update/v3.md b/docs/update/v3.md index 8f3d31935..b3bf48634 100644 --- a/docs/update/v3.md +++ b/docs/update/v3.md @@ -1,5 +1,6 @@ # 更新日志 + > 本页面由框架命令 `./zhamao generate:text update-log-md` 自动生成 ## v3.1.14