linkorb / haigha
Alice 数据库表固定值
Requires
- php: >=7.1
- linkorb/database-manager: ^2.0
- nelmio/alice: ^3.0
- ramsey/uuid: ^2.0|^3.0
- symfony/console: ^3.4|^4.3|^5.0
- symfony/dotenv: ^3.4|^4.3|^5.0
Requires (Dev)
- phpunit/phpunit: ^5
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
中的 require
或 require-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 上查看我们的其他项目。
顺便说一句,我们正在招聘!