All Projects → yeosz → Dtool

yeosz / Dtool

数据生成器,数据库工具,数据库填充,伪数据,faker,mysql数据字典,数据库比对

Projects that are alternatives of or similar to Dtool

Php Pdo Mysql Class
A PHP MySQL PDO class similar to the the Python MySQLdb, which supports iterator and parameter binding when using "WHERE IN" statement.
Stars: ✭ 213 (+660.71%)
Mutual labels:  pdo, mysql
Datafaker
Datafaker is a large-scale test data and flow test data generation tool. Datafaker fakes data and inserts to varied data sources. 测试数据生成工具
Stars: ✭ 327 (+1067.86%)
Mutual labels:  faker, mysql
Meetingfilm
基于微服务架构的在线电影购票平台
Stars: ✭ 149 (+432.14%)
Mutual labels:  postman, mysql
Basicdb
PDO ile geliştirilmiş kullanımı kolay veritabanı sınıfıdır.
Stars: ✭ 127 (+353.57%)
Mutual labels:  pdo, mysql
Easydb
Easy-to-use PDO wrapper for PHP projects.
Stars: ✭ 624 (+2128.57%)
Mutual labels:  pdo, mysql
Pdo
Connecting to MySQL in PHP using PDO.
Stars: ✭ 187 (+567.86%)
Mutual labels:  pdo, mysql
Php Sql Query Builder
An elegant lightweight and efficient SQL Query Builder with fluid interface SQL syntax supporting bindings and complicated query generation.
Stars: ✭ 313 (+1017.86%)
Mutual labels:  pdo, mysql
Mysqldump Php
PHP version of mysqldump cli that comes with MySQL
Stars: ✭ 975 (+3382.14%)
Mutual labels:  pdo, mysql
Dibi
Dibi - smart database abstraction layer
Stars: ✭ 373 (+1232.14%)
Mutual labels:  pdo, mysql
Php Practice
🌹 一天一点点,积少成多...
Stars: ✭ 351 (+1153.57%)
Mutual labels:  faker, pdo
Nukeviet
NukeViet CMS is multi Content Management System. NukeViet CMS is the 1st open source content management system in Vietnam. NukeViet was awarded the Vietnam Talent 2011, the Ministry of Education and Training Vietnam officially encouraged to use.
Stars: ✭ 113 (+303.57%)
Mutual labels:  pdo, mysql
Fluentpdo
A PHP SQL query builder using PDO
Stars: ✭ 783 (+2696.43%)
Mutual labels:  pdo, mysql
Swpdo
Swoole Coroutine SQL component like PDO | 0成本迁移PDO到Swoole高性能协程客户端
Stars: ✭ 64 (+128.57%)
Mutual labels:  pdo, mysql
Hydrahon
🐉 Fast & standalone PHP MySQL Query Builder library.
Stars: ✭ 194 (+592.86%)
Mutual labels:  pdo, mysql
Php frameworks analysis
php框架源码分析
Stars: ✭ 57 (+103.57%)
Mutual labels:  pdo, mysql
Seconds Kill
基于 Springboot + Redis + Kafka 的秒杀系统,乐观锁 + 缓存 + 限流 + 异步,TPS 从 500 优化到 3000
Stars: ✭ 180 (+542.86%)
Mutual labels:  postman, mysql
Php Mysql Class
Simple MySQL class written in PHP, for interfacing with a MySQL database.
Stars: ✭ 349 (+1146.43%)
Mutual labels:  pdo, mysql
Leafpub
Simple, beautiful, open source publishing.
Stars: ✭ 645 (+2203.57%)
Mutual labels:  pdo, mysql
Ezsql
PHP class to make interacting with a database ridiculusly easy
Stars: ✭ 804 (+2771.43%)
Mutual labels:  pdo, mysql
Ssm redis template
An template based on Maven, using Spring + Spring MVC + mybatis + spring-data-redis frames. It can be used to construct a new Java Web Appliaction quickly
Stars: ✭ 13 (-53.57%)
Mutual labels:  mysql

dtool

安装

使用 Composer 安装:

composer require "yeosz/dtool"

使用

Provider 数据供给器

$provider = new \Yeosz\Dtool\Provider();

$data = [
    'string' => $provider->getString(10),
    'mb_string' => $provider->getMbString(10),
    'city' => $provider->city,
    'address' => $provider->address,
    'uuid' => $provider->uuid,
    'id_card' => $provider->id_card,
    'image_url' => $provider->image_url,
    'bitmap_url' => $provider->bitmap_url,
    'name' => $provider->name,
    'first_name' => $provider->first_name,
    'last_name' => $provider->last_name,
    'phone' => $provider->phone,
    'mobile' => $provider->mobile,
    'email' => $provider->email,
    'qq' => $provider->qq,
    'postcode' => $provider->postcode,
    'company_name' => $provider->company_name,
    'ean8' => $provider->ean8,
    'ean13' => $provider->ean13,
    'timestamp' => $provider->timestamp,
    'year' => $provider->year,
    'date' => $provider->date,
    'time' => $provider->time,
    'integer' => $provider->integer,
    'random' => $provider->randomValue([1, 2, 3]),
    'payment' => $provider->payment,
    'bank' => $provider->bank,
    'color_name' => $provider->color_name,
    'color_hex' => $provider->color_hex,
    'color_rgb' => $provider->color_rgb,
    'version' => $provider->version,
    'between' => $provider->between(11, 99, 1000),
];

print_r($data);

// 数字供应器 numberProvider
$provider->numberProvider->randomMediumint();
// 时间供应器 datetimeProvider
$provider->datetimeProvider->time();

// 自增长
$provider->addIncrement('sort', 1);
var_dump($provider->sort);
var_dump($provider->sort);
var_dump($provider->sort);

// 自定义供应器
$provider->addProvider('my_time', function(){
    return time();
});
var_dump($provider->my_time);

DB PDO封装

$db = new Yeosz\Dtool\DB('localhost;port=33060', 'homestead', 'homestead', 'secret');

$sql = "CREATE TABLE `dtool_test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '真实姓名',
  `sex` enum('2','1','0') NOT NULL COMMENT '性别:1男2女0未知',
  `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'user id',
  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '价格',
  `address` varchar(60) NOT NULL DEFAULT '' COMMENT '地址',
  `remarks` varchar(128) NOT NULL DEFAULT '' COMMENT '备注',
  `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_username` (`username`) USING HASH
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;";
$db->query($sql);

$rows = $db->query("select * from dtool_test where " . $db->buildInCondition('id', [1,2,3,4], true) . " order by id desc");
print_r($rows);

$row = $db->row("select id,name from dtool_test where id=:id", ['id'=>1]);
print_r($row);

$column = $db->column("select name from dtool_test");
print_r($column);

$cell = $db->cell("select name from dtool_test where id=?", [1]);
print_r($cell);

MysqlTool MySQL工具

$db = new Yeosz\Dtool\DB('localhost:33060', 'homestead', 'homestead', 'secret');

$tool = new Yeosz\Dtool\MysqlTool($db, 'homestead');
// 生成文档
file_put_contents('./document.html', $tool->getDocument());

// 生成表数据供应器
$tool->buildTableProvider('./tp/', 'TableProvider');

image

TableProvider 表数据供给器

// omposer.json修改autoload部分,增加命名空间
$table = new \TableProvider\DtoolTest();
$data = $table->generate(); // 生成数据,但不插入数据库
$table->db->insert('dtool_test', $data);
$table->create(2); // 生成数据,并插入数据库
// generate和create都可以传入一个闭包参数,对数据进行修改
$data = $table->generate(function ($current){
    $current['user_id'] = mt_rand(111,999);
    return $current;
});

// 表也可以针对某列自定义数据供应器 方法名以dataProvider开头
class DtoolTest  extends Base
{
    public $table = 'dtool_test';
    public $columns = [
        'username' => ["getString",16],
        'name' => ["getString",16],
        'sex' => ["randomValue",["2","1","0"]],
        'user_id' => ["custom_user_id"],
        'price' => ["randomFloat",8,2],
        'address' => ["getString",16],
        'remarks' => ["getString",16],
        'created_at' => ["timestamp"],
    ];
    public $pk = 'id';
    
    public function dataProviderCustomUserId()
    {
        return mt_rand(111,999);
    }
}

MysqlCompare 结构同步

$db1 = new Yeosz\Dtool\DB('localhost', 'demo1', 'homestead', 'secret');
$db2 = new Yeosz\Dtool\DB('localhost', 'demo2', 'homestead', 'secret');

$diff = new \Yeosz\Dtool\MysqlCompare($db2, $db1);
$diff->showSql();

Postman

接口调试时生成随机数据,方便测试(建议先压缩)

image

参考

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].