dummify / dummify.php
1.0.0
2017-12-09 19:28 UTC
Requires
- fzaninotto/faker: ^1.7
- illuminate/database: ^5.5
Requires (Dev)
- phpstan/phpstan: ^0.9.1
- phpunit/phpunit: ^6.4
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: 2.*
This package is not auto-updated.
Last update: 2024-09-28 02:44:57 UTC
README
程序化地将数据库转换为非敏感数据,以供开发使用!
TL;DR
// Use an array of parameters to connect to a database $connection = ['driver' => 'sqlite', 'database' => ':memory:']; // You may populate your database with dummy data $faker = Faker\Factory::create(); Dummify::connectTo($connection) ->from('users') ->insert(function($row) { $row->name = $faker->name; $row->email = $faker->email; return $row; }); // Or you can dummify with a new rule Dummify::connectTo($connection) ->from('users', function ($query) { return $query->where('email', 'email@dummify.php'); // (Optional) }) ->update(function ($row) { $row->email = 'email2@dummify.php'; return $row; })
安装Dummify
感谢Composer,它相当容易!
$ composer require --dev dummify/dummify.php
并在您的代码中
include '/vendor/autoload.php'; use Dummify\Dummify;
设置连接
使用Illuminate\Database
模块进行数据库连接,Dummify
可以连接到
- MySQL
- PostgreSQL
- SQL Server
- SQLite
创建新连接需要一个参数数组,如下所示
MySQL/MariaDB连接
这里有一个示例!
$connection = [ 'driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '3306', 'database' => 'example', 'username' => 'root', 'password' => '', 'unix_socket' => '', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ];
PostgreSQL连接
这里有一个示例!
$connection = [ 'driver' => 'pgsql', 'host' => '127.0.0.1', 'port' => '5432', 'database' => 'example', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', 'sslmode' => 'prefer', ];
SQL Server连接
这里有一个示例!
$connection = [ 'driver' => 'sqlsrv', 'host' => '127.0.0.1'), 'port' => '1433', 'database' => 'example', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'prefix' => '', ];
SQLite连接
这里有一个示例!
$connection = [ 'driver' => 'sqlite', 'database' => '/static/path/to/database.sqlite', 'prefix' => '', ];
或者,您可以使用内存连接,如下所示
$connection = [ 'driver' => 'sqlite', 'database' => ':memory:', 'prefix' => '', ];
实例化Dummify
一旦您有了连接数组,您可以使用它来连接到您的数据库
$dummify = Dummify::connectTo($connection)
稍后您可以选择使用from($table)
方法选择一个表。
$dummify->from('users')
用模拟数据填充表
您可以使用insert(callable $callable, $iterations = 1)
方法填充表。在这种情况下,我们使用Faker来帮助我们生成随机数据!
$faker = Faker\Factory::create(); $dummify ->from('users') ->insert(function($row){ $row->name = $faker->name $row->email = $faker->email return $row; }); // (Optional) You can pass how many you want to create $dummify ->from('users') ->insert(function($row){ $row->name = $faker->name $row->email = $faker->email return $row; }, 100);
用模拟数据更新表
您可以使用update(callable $callable)
方法设置迭代器如何遍历每一行!
$faker = Faker\Factory::create(); $dummify ->from('users') ->update(function($row){ $row->name = $faker->name $row->email = $faker->email return $row });
对更新进行限制
如果您对限制或添加SQL查询的条件感兴趣,您可以使用所有的Illuminate\Database
流畅语法!
有关更多信息,请参阅Laravel
文档。
$dummify->from('users', function($query) { return $query->where('name', 'like', '%Filipe%'); });