linkorb/haigha

Alice 数据库表固定值

v2.8.1 2023-02-03 13:26 UTC

README

提示

Haigha 已被全新的 Hatter 取代 - 功能相似,依然独立于应用程序,但不再尝试以 Alice 不被设计的方式使用 Alice。

Haigha:表格的 Alice 固定值

Alice 是一个 出色的 数据库固定值库。它与 Doctrine 无缝配合,但如果您不使用 Doctrine ORM,则需要自定义持久化...

这就是 Haigha 发挥作用的地方

Haigha 允许您直接将 Alice 用于数据库表!

功能

  • 支持所有标准的 Alice 功能(范围、可选数据、引用、继承等)
  • 支持 Faker 数据提供者
  • 支持任何 PDO 连接
  • 无需编写类,直接从 yml 持久化到您的 SQL 数据库

示例固定值文件

Haigha 使用 Alice 加载固定值文件,因此格式相同(详情)。需要注意的是,您使用表名而不是类名。在表名前加上 table. 前缀。例如,如果您的表名为 user,则可以这样使用

table.group:
  group_random_users:
    id: 1 # This is important for version ~2.0
    name: Random users

table.user:
  random_user{0..9}:
    group_id: @group_random_users
    username: <userName()>
    firstname: <firstName()>
    lastname: <lastName()>
    password: <password()>
    email: <email()>

如何在您的应用程序中使用 Haigha

只需将以下内容添加到您的 composer.json 中的 requirerequire-dev 部分,并运行 composer update

"require": {
  "linkorb/haigha": "^2.0"
}

现在您可以在您的应用程序中使用 Haigha,或者使用包含的命令行工具将固定值加载到您的数据库中

命令行用法

haigha 命令行工具知道一个子命令:fixtures:load

第一个参数是您的固定值定义文件名(yaml)。

第二个参数是(可选的)数据库 URL。如果没有指定数据库 URL,则 haigha 使用您的 PDO 环境变量。

数据库 URL

包含用户名、密码、主机名和数据库名的完整 URL。例如

./vendor/bin/haigha fixtures:load examples/random_users.yml mysql://username:password@hostname/dbname

只包含数据库名

在这种情况下,使用 linkorb/database-manager 从 .conf 文件中加载数据库连接详细信息(服务器、用户名、密码等)(阅读项目 README 获取更多详细信息)。

简而言之 - 您必须在 /share/config/database/ 中有一个 database_name.conf 文件,如 database-manager 的文档 中所述。

./vendor/bin/haigha fixtures:load examples/random_users.yml dbname

库使用

您可以使用 Haigha 在自己的应用程序中这样使用

// Instantiate a new Alice loader
$loader = new Nelmio\Alice\Fixtures\Loader();

// Add the Haigha instantiator
$instantiator = new Haigha\TableRecordInstantiator();
$loader->addInstantiator($instantiator);

// Load (Haigha) objects from a Alice yml file
$objects = $loader->load('examples/random_users.yml');

// Instantiate the Haigha PDO persister, and pass a PDO connection
$persister = new PdoPersister($pdo);

// Persist the Haigha objects on the PDO connection
$persister->persist($objects);

测试

自定义 phpunit.xml

cp phpunit.xml.dist phpunit.xml

运行

vendor/bin/phpunit

许可证

MIT(见 LICENSE.md

由 LinkORB 工程团队提供


在我们的工程页面 linkorb.com/engineering 上查看我们的其他项目。

顺便说一句,我们正在招聘!