定制 koalaphp/code-generator 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

koalaphp/code-generator

Composer 安装命令:

composer require koalaphp/code-generator

包简介

KoalaPHP Code Generator Component

README 文档

README

MySQL的Dao和Model代码生成器

通过命令行的方式,根据配置的模板,连接MySQL的数据库的表,获取表结构信息,并生成对应的Dao文件和Model文件。

1. 快速开始

进行基本配置

define('OUTPUT_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Dao' . DIRECTORY_SEPARATOR . "%dbNamespace%");

根据默认的模板生成Dao文件

$userDaoGenerator = new \Koala\CodeGenerator\DaoGenerator();
$userDaoGenerator->setPdo($myMasterPDO); // $myMasterPDO 是连接到数据库的 PDO对象
$userDaoGenerator->setFullParentDir(OUTPUT_PATH);
$isSucc = $userDaoGenerator->genDaoCodeByDbNameAndTableName("test", "user"); // test是数据库名字,user是表名
$isSucc = $userDaoGenerator->genDaoCodeByDbNameAndTableName("test", "test_user"); // test是数据库名字,test_user是表名

根据默认的模板生成Model文件

$userModelGenerator = new \Koala\CodeGenerator\ModelGenerator();
$userModelGenerator->setPdo($myMasterPDO); // $myMasterPDO 是连接到数据库的 PDO对象
$userModelGenerator->setFullParentDir(OUTPUT_PATH);
$isSucc = $userModelGenerator->genModelCodeByDbNameAndTableName("test", "user"); // test是数据库名字,user是表名
$isSucc = $userModelGenerator->genModelCodeByDbNameAndTableName("test", "test_user"); // test是数据库名字,test_user是表名

2. 个性化配置Dao模板和Model模板

2.1 个性化配置Dao模板

建立 CustomDaoTpl.php 文件

<?php
class CustomDaoTpl
{
    public static $template = <<<EOT
<?php
namespace Library\Dao\%dbNamespace%;
use Koala\Database\SimpleDao;
/**
 * Created by Koala Command Tool. Custom Dao Tpl
 * Author: %author%
 * Date: %date%
 * 
 * @method %tableModelName% findOne(\$conditions = [], \$sort = "id desc")
 * @method %tableModelName%[] findAllRecordCore(\$conditions = [],  \$sort = "id desc", \$offset = 0, \$limit = 20, \$fieldList = [])
 * @method \\Generator|%tableModelName%[]|%tableModelName%[][] createGenerator(\$conditions = [], \$numPerTime = 100, \$isBatch = false)
 * 
 * %tableComment% Dao 类,提供基本的增删改查功能
 */
class %tableDaoName% extends SimpleDao
{
    // 连接的数据库
    protected \$database = '%dbName%';
    // 表名
    protected \$table = '%tableName%';
    // 主键字段名
    protected \$primaryKey = '%primaryKey%';
    
    // select查询的时候是否使用master,默认select也是查询master
    protected \$isMaster = true;
    
    // select查询出来的结果映射的Model类
    protected \$modelClass = %tableModelName%::class;
    
%fieldList%
}
EOT;
}

配置个性化Dao模板,生成对应的Dao文件

// 配置个性化模板
\Koala\CodeGenerator\Template\DaoTpl::$template = CustomDaoTpl::$template;
$userDaoGenerator = new \Koala\CodeGenerator\DaoGenerator();
$userDaoGenerator->setPdo($myMasterPDO); // $myMasterPDO 是连接到数据库的 PDO对象
$userDaoGenerator->setFullParentDir(OUTPUT_PATH);
$isSucc = $userDaoGenerator->genDaoCodeByDbNameAndTableName("test", "user"); // test是数据库名字,user是表名
$isSucc = $userDaoGenerator->genDaoCodeByDbNameAndTableName("test", "test_user"); // test是数据库名字,test_user是表名

2.2 个性化配置Model模板

建立 CustomModelTpl.php 文件

<?php
class CustomModelTpl
{
    public static $template = <<<EOT
<?php
namespace Library\Dao\%dbNamespace%;

/**
 * Created by Koala Command Tool. Custom Model Tpl
 * Author: %author%
 * Date: %date%
 * 
 * %tableComment% Model 模型类
 */
class %tableModelName%
{
%fieldList%
}
EOT;

}

配置个性化Model模板,生成对应的 Model 文件

\Koala\CodeGenerator\Template\ModelTpl::$template = CustomModelTpl::$template;
$userModelGenerator = new \Koala\CodeGenerator\ModelGenerator();
$userModelGenerator->setPdo($myMasterPDO); // $myMasterPDO 是连接到数据库的 PDO对象
$userModelGenerator->setFullParentDir(OUTPUT_PATH);
$isSucc = $userModelGenerator->genModelCodeByDbNameAndTableName("test", "user"); // test是数据库名字,user是表名
$isSucc = $userModelGenerator->genModelCodeByDbNameAndTableName("test", "test_user"); // test是数据库名字,test_user是表名

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-05-26

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固