fyre/forge

数据库 Forge 库。

v4.0.4 2024-08-20 11:44 UTC

This package is auto-updated.

Last update: 2024-09-20 12:05:20 UTC


README

FyreForge 是一个免费的、开源的 PHP 数据库 Forge 库。

目录

安装

使用 Composer

composer require fyre/forge

在 PHP 中

use Fyre\Forge\ForgeRegistry;

Forge 注册表

获取 Forge

获取一个 Forge 以用于 连接

  • $connection 是一个 连接
$forge = ForgeRegistry::getForge($connection);

设置处理器

Forge 处理器设置一个 连接 类。

  • $connectionClass 是一个表示 连接 类名的字符串。
  • $forgeClass 是一个表示 Forge 类名的字符串。
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();