<?php
namespace PheroTest\DatabaseTest\Unit;
use PheroTest\DatabaseTest\Traits\Truncate;
use Phero\Database\DbUnit;
/**
* @Table[name=Mother,alias=mother]
*/
class Mother extends DbUnit
{
use Truncate;
/**
* @Primary
* @Foreign[rel=info]
* @Field[name=id,alias=mother_id,type=int]
* @var [type]
*/
public $id;
/**
*
* @Field
* @var [type]
*/
public $name;
/**
* @Relation[type=oo,class=PheroTest\DatabaseTest\Unit\MotherInfo,key=mid]
* @var [type]
*/
public $info;
}
我们只要继承DbUnit类就行
并且
use Truncate
这个trait
- @Table
- name:表的真实名称
- alias:表的别名 会出现在sql中的 as
- @Field
- name:字段的真实名称
- alias:字段的别名
- type:字段的类型 {目前只有string和int的区别}
- @Primary 表示这个是表的主键
- @Foreign
- rel:表示关联的是本表的那个关联字段
- @Relation
- type:{oo:一对一 om:一对多}
- class:关联的Unit的类名
- key:关联的Unit的具体的字段
- @Entity
- field: 需要查询出来包含的类
- sort:排序
- key:排序的键值
我们只需要运行一个php文件就可以生成Unit文件到指定目录 cd到本包的根目录 把Phero文件拷贝到拷贝到vendor目录同级的目录 运行 直接运行Phero文件 输入如下的参数
./Phero builder --u root --p lerko --dir /home/lerko/Desktop/Db --db phero --namespace=\\Test\\Db Table1 Table2 //表名称不是必须的
Usage:
builder [options] [--] [<tables>]...
Arguments:
tables 需要单独生成的表的名称
Options:
--u[=U] 数据库链接的用户名 默认使用root [default: "root"]
--p[=P] 数据库链接的密码 默认为空 [default: ""]
--port[=PORT] 数据库的端口 [default: "3306"]
--dir=DIR 生成的位置
--namespace=NAMESPACE 用户生成Unit的命名空间
--db=DB 生成unit对应的数据库
--h=H 数据库的远程地址 [default: "127.0.0.1"]
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
从创建unit实体
- 方式1
$mother=new Mother();
- 方式2
$mother=Mother::Inc();
Mother::lastInc()==$mother;//lastInc会等于最近的那个Inc
FF([字段名称])==>生成字段的全称,包括所属的表以及别名 这个函数可以生成统一规范化的字段名
Mother::FF('id');
输出 : `mother`.`id`