hexmakina / crudites
PHP/PDO CRUD
0.0.12
2022-11-10 09:31 UTC
Requires
- php: >=7.1
- hexmakina/black-box: 0.0.*
README
Crudités 是什么?
"Crudités, it's a cup of carrots sticks"
Create - Retrieve - Update - Delete - Introspection, Transaction, Errors & Schema
CRUDITES
C CRUD
R Relations
U Uniques as PK
D Disable, Don't Delete
I Introspect & Inspect
T Transactions and Tracking
E Errors
S Security
Crudites 是一个 PHP PDO 包装器
异常
CruditeException
扩展 \Exception
,并由所有 Crudites 组件抛出
源代码
Source 对象存储并验证 DSN(数据源名称)
实例化
它使用 DSN 字符串创建,构造函数将提取并验证所有所需信息
mysql:host=localhost;dbname=testdb
mysql:host=localhost;port=3307;dbname=testdb
异常
如果找不到数据库的名称或适当的驱动程序,将抛出带有消息 CruditesException
_DSN_NO_DBNAME_
_DSN_NO_DRIVER_
_DSN_UNAVAILABLE_DRIVER_
属性
对象存储
- DSN 字符串(构造函数参数)
- 数据库名称(从 DSN 字符串中提取)
对象通过调用 \PDO::getAvailableDrivers()
验证驱动程序名称(从 DSN 字符串中提取)
方法
实例化时,对象提供两种方法
DSN()
,返回 DSN 字符串(字符串)name()
,返回数据库名称(字符串)
连接
连接对象依赖于 PDO 连接到数据库。
实例化
它使用以下内容创建
- 一个 DSN 字符串
- 用户名(可选)
- 密码(可选)
- 一组驱动程序选项(可选)
异常
使用 Source 对象验证 DSN 字符串,并可能抛出 CruditesException
。创建 PDO 对象,并可能抛出 PDOException
默认选项
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, // the one option you cannot change
\PDO::ATTR_CASE => \PDO::CASE_NATURAL,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC
PDO::ATTR_ERRMODE
是唯一不能覆盖的选项
属性
对象存储
- 一个 Source 对象;
- 一个数据库名称(字符串)
- 一个 PDO 对象
方法
实例化时,对象提供以下方法
数据库相关
- useDatabase(string name)
- driverName()
- databaseName()
查询执行
- prepare(string statement)
- query()
- alter()
- lastInsertId(string name)
- errorInfo()
- errorCode()
事务
- transact()
- commit()
- rollback()
数据库
该对象代表一个 SQL 数据库,处理连接和自省。
自省是一个两步过程
- 查询
INFORMATION_SCHEMA
并将 FK 和 UNIQUE 约束存储在对象属性中,在实例化时 - 表自省,称为检查,在需要时使用
inspect(table_name)
执行,并将结果存储在表缓存属性中。检查使用自省来创建表的完整表示:字段、数据类型、默认值和约束
实例化
它使用 Connection
对象创建。连接被存储,并执行数据库自省。
属性
Connection
对象- 表缓存(数组)
- 外键列表,按表索引(数组)
- 唯一约束列表,按表索引(数组)
方法
实例化时,对象提供以下方法
- name(),返回数据库名称
- connection(),返回
Connection
对象 - inspect(string table_name),返回一个 Table 对象