topphp / topphp-generate
PHP生成工具
Installs: 97
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Language:Smarty
pkg:composer/topphp/topphp-generate
Requires
- php: >=7.2
- nette/php-generator: ^3.3
- topthink/framework: >=6.0.2
Requires (Dev)
README
生成器
可快速生成thinkphp的模型类,继承自 think\Model
版本说明
现代的PHP组件都使用语义版本方案(http://semver.org), 版本号由三个点(.)分数字组成(例如:1.13.2).第一个数字是主版本号,如果PHP组件更新破坏了向后兼容性,会提升主版本号. 第二个数字是次版本号,如果PHP组件小幅更新了功能,而且没有破坏向后兼容性,会提升次版本号. 第三个数字(即最后一个数字)是修订版本号,如果PHP组件修正了向后兼容的缺陷,会提升修订版本号.
Structure
组件结构
bin/
build/
docs/
config/
src/
tests/
vendor/
Install
Via Composer
$ composer require topphp/topphp-generate
Usage
需要先配置数据库信息 config/database.php 后进行命令行生成
php think gen:db
注意事项:
1、自动生成:在topphp骨架里,多应用情况下,gen:db组件会根据你是否创建了对应的应用模块(如admin)下的model的文件夹来判断是否自动创建对应的model文件
2、创建规范:应用模块(如admin)下的model文件统一会继承app/model/entity下的模型实体类,并全部以Dao.php结尾(此Dao层主要用于编写数据库业务)
3、添加新的表:如果开发过程中需要添加新的数据表,可以执行 php think gen:db 进行自动更新模型实体类与模型Dao
4、特别说明:
a、每次执行 php think gen:db 模型实体类都会重置一遍,所以请不要直接编辑操作模型实体类
b、每次执行 php think gen:db 对于已存在的模型Dao不会清空代码,对于不存在的模型Dao会自动创建(例如中途添加新的数据表场景)。
c、每次执行 php think gen:db 以后使用传统环境(apache或nginx)部署在Linux系统下的注意统一修改一次文件夹权限(如:chown -R www:www www.domain.com/)
BaseModel 基础模型操作类
Tips:提供模型操作的基本快捷方法,提升模型操作代码复用率,方便开发,包含如下方法:
a、分页配置(用于自动构造TP6分页参数)protected getPaginateConfig()
b、获取资源数据指定列的数组 protected getSourceColumn()
c、数组分页 protected dataPage()
// 以下为公共方法
a、获取模型抛出的异常报错 getModelError()
b、获取当前模型表所有字段名 getTableFieldName()
c、新增数据 add()
d、批量新增数据 addAll()
e、大数据量批量新增(支持分批插入,一般应用于插入数据超千条场景) addLimitAll()
f、编辑数据 edit()
g、更新指定字段值(支持主键更新) updateField()
h、指定字段自增(支持主键查询) fieldInc()
i、指定字段自减(支持主键查询) fieldDec()
j、指定字段自增/自减(支持主键查询,支持多字段步进处理) fieldStep()
k、多条件批量更新(支持主键批量更新) updateAll()
l、多条件批量更新(原生where查询) updateAllRaw()
m、删除数据(支持主键删除,支持多条件删除,支持软删除) remove()
n、删除数据(原生where查询,不支持直接传入主键id值删除,其他规则同remove) removeRaw()
o、查询链式(支持主键查询,支持TP链式操作,融合软删除) queryChain()
p、查询字段值(支持主键查询,支持select查询返回二维数组,默认find查询) findField()
q、查询一条(支持主键查询,支持select查询返回二维数组,默认select查询) selectOne()
r、查询所有(支持主键查询,支持排除字段) selectAll()
s、查询排序(支持主键查询,支持原生SQL语句Order排序,支持Limit限制条数) selectSort()
t、查询首条数据(支持前Limit条) selectFirst()
u、查询最后一条数据(支持后Limit条) selectEnd()
v、满足条件的数据随机返回(支持随机取Limit条) selectRand()
w、查询某个字段的值相同的数据(同一张表指定字段值相同的数据,支持结果排序) selectSameField()
x、查询指定字段值重复的记录(支持多字段匹配,支持结果排序) selectRepeat()
y、查询指定字段值不重复的记录【仅查询不重复的】(支持多字段匹配,支持结果排序) selectNoRepeat()
z、FIND_IN_SET查询(查询指定字段包含指定的值或字符串的数据集合) selectFieldInSet()
I、FIND_IN_SET查询(查询指定字段在指定的集合的数据集合,效果类似于 field in (1,2,3,4,5) 的用法) selectFieldInList()
II、查询List(支持分页,支持each回调) selectList()
III、查询列(支持指定字段的值作为索引) selectColumn()
// 以下为联查方法
a、设置基础查询条件(用于简化基础alias、join和主表field) setBaseQuery()
b、Join联查(innerJoin,如果表中有至少一个匹配,则返回行) selectJoin()
c、leftJoin联查(即使右表中没有匹配,也从左表返回所有的行) selectLeftJoin()
d、rightJoin联查(即使左表中没有匹配,也从右表返回所有的行) selectRightJoin()
e、fullJoin联查(只要其中一个表中存在匹配,就返回行,Mysql数据库不支持) selectFullJoin()
f、一对多子查询(支持分页,支持主表、子表字段过滤,返回值类似TP的with查询返回) selectChild()
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email sleep@kaituocn.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.