lulco / populator
Database fake data populator for PHP
Installs: 21 451
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- ext-pdo: *
- fakerphp/faker: ^1.17
- nette/database: ^3.0
- symfony/console: ^4.2 | ^5.0 | ^6.0 | ^7.0
Requires (Dev)
- lulco/phoenix: ^2.3
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^9.5
README
Allows populate fake data to your database
The best feature of this library is AutomaticPopulatorCommand which populates data based on full database structure. It analyses database table tree and creates items for each table - leaves first.
// file bin/command.php $database = new Populator\Database\Database('db_name', 'mysql:dbname=db_name;host=db_host', 'db_user', 'db_password'); $populator = new Populator\Command\AutomaticPopulatorCommand($database, ['phoenix_log', 'phinxlog', 'migration_log', 'versions', 'api_logs', 'api_tokens'], true, $columnNameAndTypeCallbacks); $application = new Application(); $application->add($populator); $application->run();
Run:
php bin/command.php populator:populate
With this setup, AutomaticPopulatorCommand will create 5 items in all leaf-tables, than 25 for 2nd level, and 125 for all next levels. It can be changed by parameters $countBase
and $maxCountPerTable
of AutomaticPopulatorCommand.
You can also use AutomaticPopulator which allows you to create fake data for one table based on its structure or column names.
Create file e.g. bin/command.php
as shown below (or add PopulatorCommand to existing Symfony console application):
// file bin/command.php $application = new Symfony\Component\Console\Application(); $populator = new Populator\Command\PopulatorCommand(); $populator->addDatabase(new Populator\Database\Database('db_name', 'mysql:dbname=db_name;host=db_host', 'db_user', 'db_password')); $table1Populator = new Populator\Populator\AutomaticPopulator('table_1', 50); $populator->addPopulator($table1Populator); $application->add($populator); $application->run();
This setup will populate 50 fake rows for database table with name table_1
after executing this command:
php bin/command.php populator:populate