fyre / forge
数据库 Forge 库。
Requires
- fyre/schema: ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
README
FyreForge 是一个免费的、开源的 PHP 数据库 Forge 库。
目录
安装
使用 Composer
composer require fyre/forge
在 PHP 中
use Fyre\Forge\ForgeRegistry;
Forge 注册表
获取 Forge
$connection
是一个 连接。
$forge = ForgeRegistry::getForge($connection);
设置处理器
ForgeRegistry::setHandler($connectionClass, $forgeClass);
Forges
添加列
向表中添加列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。nullable
是一个布尔值,表示列是否为可空,默认为 false。default
是一个表示列默认值的字符串,默认为 null(无默认值)。autoIncrement
是一个布尔值,表示列是否为自增列,默认为 false。
$forge->addColumn($table, $column, $options);
根据连接处理器,可能还有其他列选项可用。
添加索引
向表中添加索引。
$table
是一个表示表名的字符串。$index
是一个表示索引名的字符串。$options
是一个包含索引选项的数组。columns
是一个字符串或数组,包含用于索引的列,默认为索引名。unique
是一个布尔值,表示索引是否必须唯一,默认为 false。primary
是一个布尔值,表示索引是否为主键,默认为 false。
$forge->addIndex($table, $index, $options);
根据连接处理器,可能还有其他索引选项可用。
构建
构建一个 TableForge。
$table
是一个表示表名的字符串。
$tableForge = $forge->build($table);
根据连接处理器,可能还有其他表格选项可用。
创建表
创建一个新的表。
$table
是一个表示表名的字符串。$columns
是一个包含列定义的数组。$options
是一个包含模式选项的数组。indexes
是一个包含索引定义的数组。foreignKeys
是一个包含外键定义的数组。ifNotExists
是一个布尔值,表示是否使用IF NOT EXISTS
子句,默认为 false。
$forge->createTable($table, $columns, $options);
根据连接处理器,可能还有其他表格选项可用。
删除列
从表中删除列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。ifExists
是一个布尔值,表示是否使用IF EXISTS
子句,默认为 false。
$forge->dropColumn($table, $column, $options);
删除索引
从表中删除索引。
$table
是一个表示表名的字符串。$index
是一个表示索引名的字符串。
$forge->dropIndex($table, $index);
删除表
删除表。
$table
是一个表示表名的字符串。$options
是一个包含表选项的数组。ifExists
是一个布尔值,表示是否使用IF EXISTS
子句,默认为 false。
$forge->dropTable($table, $options);
获取连接
获取 连接。
$connection = $forge->getConnection();
重命名列
重命名列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$newColumn
是表示新列名的字符串。
$forge->renameColumn($table, $column, $newColumn);
重命名表
重命名表。
$table
是一个表示表名的字符串。$newTable
是表示新表名的字符串。
$forge->renameTable($table, $newTable);
MySQL
MySQL Forge 扩展了 Forge 类,并提供了一些针对 MySQL 数据库的特定方法和选项。
添加列
向表中添加列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。values
是一个包含枚举/集值的数组,默认为 null。nullable
是一个布尔值,表示列是否为可空,默认为 false。unsigned
是一个布尔值,表示列是否为无符号,默认为 false。default
是一个表示列默认值的字符串,默认为 null(无默认值)。charset
是一个表示列字符集的字符串,默认为连接的字符集。collation
是一个表示列校对的字符串,默认为连接的校对。autoIncrement
是一个布尔值,表示列是否为自增列,默认为 false。comment
是一个表示列注释的字符串,默认为 ""。after
是一个表示要添加此列之后的列的字符串,默认为 null。first
是一个布尔值,表示是否将此列添加到表中的第一个位置,默认为 false。
$forge->addColumn($table, $column, $options);
添加外键
向表中添加外键。
$table
是一个表示表名的字符串。$foreignKey
是表示外键名的字符串。$options
是一个包含外键选项的数组。columns
是一个表示用于外键的列的字符串或数组,默认为外键名。referencedTable
是一个表示要使用的引用表的字符串。referencedColumns
是一个表示在引用表中使用的列的字符串或数组。update
是一个包含 ON UPDATE 操作的字符串,默认为 ""。delete
是一个包含 ON DELETE 操作的字符串,默认为 ""。
$forge->addForeignKey($table, $foreignKey, $options);
添加索引
向表中添加索引。
$table
是一个表示表名的字符串。$index
是一个表示索引名的字符串。$options
是一个包含索引选项的数组。columns
是一个字符串或数组,包含用于索引的列,默认为索引名。type
是一个表示索引类型的字符串,默认为 "BTREE"。unique
是一个布尔值,表示索引是否必须唯一,默认为 false。primary
是一个布尔值,表示索引是否为主键,默认为 false。
$forge->addIndex($table, $index, $options);
修改表
修改表。
$table
是一个表示表名的字符串。$options
是一个包含表选项的数组。engine
是一个表示表引擎的字符串,默认为 "InnoDB"。charset
是一个表示表字符集的字符串,默认为连接的字符集。collation
是一个表示表校对的字符串,默认为连接的校对。comment
是一个表示表注释的字符串,默认为 ""。
$forge->alterTable($table, $options);
构建
构建一个 TableForge。
$table
是一个表示表名的字符串。$options
是一个包含表选项的数组。engine
是一个表示表引擎的字符串,默认为 "InnoDB"。charset
是一个表示表字符集的字符串,默认为连接的字符集。collation
是一个表示表校对的字符串,默认为连接的校对。comment
是一个表示表注释的字符串,默认为 ""。
$tableForge = $forge->build($table, $options);
更改列
更改表列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。name
是一个表示新列名的字符串,默认为列名。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。values
是一个包含枚举/集值的数组,默认为 null。nullable
是一个布尔值,表示列是否为可空,默认为 false。unsigned
是一个布尔值,表示列是否为无符号,默认为 false。default
是一个表示列默认值的字符串,默认为 null(无默认值)。charset
是一个表示列字符集的字符串,默认为连接的字符集。collation
是一个表示列校对的字符串,默认为连接的校对。autoIncrement
是一个布尔值,表示列是否为自增列,默认为 false。comment
是一个表示列注释的字符串,默认为 ""。after
是一个表示要添加此列之后的列的字符串,默认为 null。first
是一个布尔值,表示是否将此列添加到表中的第一个位置,默认为 false。
$forge->changeColumn($table, $column, $options);
创建模式
创建新的模式。
$schema
是一个表示模式名的字符串。$options
是一个包含模式选项的数组。charset
是一个表示模式字符集的字符串,默认为连接的字符集。collation
是一个表示模式校对的字符串,默认为连接的校对。ifNotExists
是一个布尔值,表示是否使用IF NOT EXISTS
子句,默认为 false。
$forge->createSchema($schema, $options);
创建表
创建一个新的表。
$table
是一个表示表名的字符串。$columns
是一个包含列定义的数组。$options
是一个包含模式选项的数组。indexes
是一个包含索引定义的数组。foreignKeys
是一个包含外键定义的数组。engine
是一个表示表引擎的字符串,默认为 "InnoDB"。charset
是一个表示表字符集的字符串,默认为连接的字符集。collation
是一个表示表校对的字符串,默认为连接的校对。comment
是一个表示表注释的字符串,默认为 ""。ifNotExists
是一个布尔值,表示是否使用IF NOT EXISTS
子句,默认为 false。
$forge->createTable($table, $columns, $options);
删除外键
从表中删除外键。
$table
是一个表示表名的字符串。$foreignKey
是表示外键名的字符串。
$forge->dropForeignKey($table, $foreignKey);
删除主键
从表中删除主键。
$table
是一个表示表名的字符串。
$forge->dropPrimaryKey();
删除模式
删除模式。
$schema
是一个表示模式名的字符串。$options
是一个包含模式选项的数组。ifExists
是一个布尔值,表示是否使用IF EXISTS
子句,默认为 false。
$forge->dropSchema($schema, $options);
Postgres
Postgres Forge 扩展了 Forge 类,并提供了一些针对 Postgres 数据库的特定方法和选项。
添加列
向表中添加列。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。nullable
是一个布尔值,表示列是否为可空,默认为 false。default
是一个表示列默认值的字符串,默认为 null(无默认值)。autoIncrement
是一个布尔值,表示列是否为自增列,默认为 false。comment
是一个表示列注释的字符串,默认为 ""。
$forge->addColumn($table, $column, $options);
添加外键
向表中添加外键。
$table
是一个表示表名的字符串。$foreignKey
是表示外键名的字符串。$options
是一个包含外键选项的数组。columns
是一个表示用于外键的列的字符串或数组,默认为外键名。referencedTable
是一个表示要使用的引用表的字符串。referencedColumns
是一个表示在引用表中使用的列的字符串或数组。update
是一个包含 ON UPDATE 操作的字符串,默认为 ""。delete
是一个包含 ON DELETE 操作的字符串,默认为 ""。
$forge->addForeignKey($table, $foreignKey, $options);
修改列自动递增
修改列的自动递增。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$autoIncrement
是一个布尔值,表示列是否为自动递增列。
$forge->alterColumnAutoIncrement($table, $column, $autoIncrement);
修改列默认值
修改列的默认值。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$default
是一个表示列默认值的字符串。
$forge->alterColumnDefault($table, $column, $default);
修改列可空性
修改列是否可空的设置。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$nullable
是一个布尔值,表示列是否可空,默认值为 否。
$forge->alterColumnNullable($table, $column, $nullable);
修改列类型
修改列的类型。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。
$forge->alterColumnType($table, $column, $options);
构建
构建一个 TableForge。
$table
是一个表示表名的字符串。$options
是一个包含表选项的数组。comment
是一个表示表注释的字符串,默认为 ""。
$tableForge = $forge->build($table, $options);
注释列
为列设置注释。
$table
是一个表示表名的字符串。$column
是一个表示列名的字符串。$comment
是一个字符串,表示表的注释。
$forge->commentOnTable($table, $column, $comment);
注释表
为表设置注释。
$table
是一个表示表名的字符串。$comment
是一个字符串,表示表的注释。
$forge->commentOnTable($table, $comment);
创建模式
创建新的模式。
$schema
是一个表示模式名的字符串。$options
是一个包含模式选项的数组。ifNotExists
是一个布尔值,表示是否使用IF NOT EXISTS
子句,默认为 false。
$forge->createSchema($schema, $options);
创建表
创建一个新的表。
$table
是一个表示表名的字符串。$columns
是一个包含列定义的数组。$options
是一个包含模式选项的数组。indexes
是一个包含索引定义的数组。foreignKeys
是一个包含外键定义的数组。comment
是一个表示表注释的字符串,默认为 ""。ifNotExists
是一个布尔值,表示是否使用IF NOT EXISTS
子句,默认为 false。
$forge->createTable($table, $columns, $options);
删除约束
从表中删除约束。
$table
是一个表示表名的字符串。$index
是一个表示索引名的字符串。
$forge->dropConstraint($table, $index);
删除外键
从表中删除外键。
$table
是一个表示表名的字符串。$foreignKey
是表示外键名的字符串。
$forge->dropForeignKey($table, $foreignKey);
删除主键
从表中删除主键。
$table
是一个表示表名的字符串。
$forge->dropPrimaryKey();
删除模式
删除模式。
$schema
是一个表示模式名的字符串。$options
是一个包含模式选项的数组。ifExists
是一个布尔值,表示是否使用IF EXISTS
子句,默认为 false。
$forge->dropSchema($schema, $options);
Sqlite
Sqlite Forge 扩展了 Forge 类。
表格 Forge
添加列
向表中添加列。
$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。name
是一个表示新列名的字符串,默认为列名。type
是一个表示列类型的字符串,默认为 "varchar"。length
是一个表示列长度的数字,默认为类型的默认值。precision
是一个表示列精度的数字,默认为类型的默认值。nullable
是一个布尔值,表示列是否为可空,默认为 false。default
是一个表示列默认值的字符串,默认为 null(无默认值)。autoIncrement
是一个布尔值,表示列是否为自增列,默认为 false。
$tableForge->addColumn($column, $options);
根据连接处理器,可能还有其他列选项可用。
添加外键
向表中添加外键。
$foreignKey
是表示外键名的字符串。$options
是一个包含外键选项的数组。columns
是一个表示用于外键的列的字符串或数组,默认为外键名。referencedTable
是一个表示要使用的引用表的字符串。referencedColumns
是一个表示在引用表中使用的列的字符串或数组。update
是一个包含 ON UPDATE 操作的字符串,默认为 ""。delete
是一个包含 ON DELETE 操作的字符串,默认为 ""。
$tableForge->addForeignKey($foreignKey, $options);
无法向现有的 Sqlite 表中添加外键。
添加索引
向表中添加索引。
$index
是一个表示索引名的字符串。$options
是一个包含索引选项的数组。columns
是一个字符串或数组,包含用于索引的列,默认为索引名。unique
是一个布尔值,表示索引是否必须唯一,默认为 false。primary
是一个布尔值,表示索引是否为主键,默认为 false。
$tableForge->addIndex($index, $options);
根据连接处理器,可能还有其他索引选项可用。
无法向现有的 Sqlite 表中添加主键。
更改列
更改表列。
$column
是一个表示列名的字符串。$options
是一个包含列选项的数组。name
是一个表示新列名的字符串,默认为列名。
$tableForge->changeColumn($column, $options);
根据连接处理器,可能还有其他列选项可用。
无法修改现有 Sqlite 表的列定义。
清除
清除列和索引数据。
$tableForge->clear();
列
获取表列的数据。
$name
是一个字符串,表示列名。
$column = $tableForge->column($name);
列名
获取所有表列的名称。
$columnNames = $tableForge->columnNames();
列
获取所有表列的数据。
$columns = $tableForge->columns();
删除
删除表。
$tableForge->drop();
删除列
从表中删除列。
$column
是一个表示列名的字符串。
$tableForge->dropColumn($column);
删除外键
从表中删除外键。
$foreignKey
是表示外键名的字符串。
$tableForge->dropForeignKey($foreignKey);
无法从现有的 Sqlite 表中删除外键。
删除索引
从表中删除索引。
$index
是一个表示索引名的字符串。
$tableForge->dropIndex($index);
无法从现有的 Sqlite 表中删除主键和唯一键。
执行
生成并执行 SQL 查询。
$tableForge->execute();
外键
获取表外键的数据。
$name
是一个字符串,表示外键名称。
$foreignKey = $tableForge->foreignKey($name);
外键
获取所有表外键的数据。
$foreignKeys = $tableForge->foreignKeys();
获取 Forge
获取 Forge。
$forge = $tableForge->getForge();
获取表名
获取表名。
$tableName = $tableForge->getTableName();
有列
确定表是否有列。
$name
是一个字符串,表示列名。
$hasColumn = $tableForge->hasColumn($name);
有外键
确定表是否有外键。
$name
是一个字符串,表示外键名称。
$hasForeignKey = $tableForge->hasForeignKey($name);
有索引
确定表是否有索引。
$name
是一个字符串,表示索引名称。
$hasIndex = $tableForge->hasIndex($name);
索引
获取表索引的数据。
$name
是一个字符串,表示索引名称。
$index = $tableForge->index($name);
索引
获取所有表索引的数据。
$indexes = $tableForge->indexes();
重命名
重命名表。
$table
是一个字符串,表示新的表名。
$tableForge->rename($table);
设置主键
设置主键。
$columns
是一个字符串或数组,包含用于主键的列。
$tableForge->setPrimaryKey($columns);
无法向现有的 Sqlite 表中添加主键。
SQL
生成 SQL 查询。
$queries = $tableForge->sql();