dodo-it / dibi-entity
此包尚未发布任何版本,可用的信息不多。
README
从数据库生成的类型化实体生成器。它可以生成整个数据库、表/视图和查询的实体
安装
$ composer require dodo-it/entity-generator
对于Nette用户
在您的config.neon
配置中注册扩展
extensions: entityGenerator: DodoIt\EntityGenerator\DI\EntityGeneratorExtension
配置,这些是默认值,所以只有当这不适合您时才需要提供它
entityGenerator: path: %appDir%/Models/Entities namespace: App\Models\Entities typeMapping: int: - int - bigint - mediumint - smallint float: - decimal - float bool: - bit - tinyint '\DateTime': - date - datetime - timestamp '\DateInterval': - time replacements: #table: entityName prefix: '' sufix: 'Entity' extends: '\DodoIt\EntityGenerator\Entity' gettersAndSetters: true propertyVisibility: protected
使用方法
运行 php bin/console entity
生成的实体的示例使用方法
//generates all entities from tables and views in database
console entity:generate
//generate entity for table users
console entity:generate users
//generate entity UserWithAddress from query
console entity:generate UserWithAddress --query="SELECT u.*, a.street FROM users u LEFT JOIN addresses a ON a.user_id = u.id"
选择
$this->db->select('*')->from('users')->where('id = %i', $id)
->execute()
->setRowClass(User::class)
->fetch();
更新/插入
$user = new User();
$user->setUsername('user1');
$user->setColumn2(NULL);
$user->setColumn3(5);
$this->db->update('users', $user->_getModifications())->where('id = %i', 22);
// UPDATE users SET ´username´ = 'user1', column_2 = 5, column_3 = NULL WHERE id = 22
您也可以向实体添加自己的方法并更改getter/setter函数,它们在重新生成时不会被覆盖