schmunk42/giic

命令行运行 Gii 的工具集

0.1.4 2014-10-10 17:44 UTC

This package is auto-updated.

Last update: 2024-09-13 02:13:28 UTC


README

本包提供在命令行运行 Gii 的工具集。它可以运行无限数量的预配置的 Gii 生成器模板。

简介

"我已经配置了几个模板,通过 Gii,我可以选择与数据库表关联的模板来创建模块代码。它运行得很好,节省了我很多时间。如果我能用 bash 脚本或 php 脚本实现它,那就太棒了!"

"目前还不行,而且我担心,在您的整个原型设计阶段也不太可能实现。 "

unixjunky 和 Samdark, 2010

但我们让它工作了!

它是如何工作的?

Giic 将生成器和 Gii 模块包装在 GiicApplication 中,这是一个 有趣的混合CConsoleApplicationCWebApplication

您可以使用自定义的 配置文件 来指定您的输入参数。每个 action 都对应于在 web 前端点击 生成 按钮的操作。只需指定模型属性,就像您在 web 应用程序中做的那样。有关更多详细信息,请参阅“配置”部分的链接。

注意:此代码是实验性的,请在将其用于项目之前进行 备份。如果您发现任何问题,请在此处报告。

资源

安装

通过 composer

composer.phar require schmunk42/giic

使用方法

php vendor/schmunk42/giic/giic.php giic generate alias.to.giic-config

设置

Giic 可以安装在任何应用程序中,但为了更好地了解其工作原理,我们将通过一个具有 CRUDs 的 Yii 扩展(用于 MySQL 示例数据库 Sakila)的示例设置来引导您。

为了测试驱动,我们将安装 Phundament 以及 Sakila 示例模块 schmunk42/yii-sakila-crud。此模块为 MySQL 示例数据库 "Sakila" 提供了 giic 的迁移和配置。它还包括生成的 CRUDs 以供测试。

安装开发(!) 版本的 Phundament 和演示扩展

composer.phar create-project -sdev phundament/app app-crud-test
cd app-crud-test
composer.phar require schmunk42/yii-sakila-crud:@dev

提示:Phundament 中预配置了标准的 gii-template-collection 使用。

将 Sakila 迁移添加到 app/config/console-local.php

'import' => array(
    'vendor.phundament.gii-template-collection.components.*'
),
'aliases' => array(
    'sakila' => 'vendor.schmunk42.yii-sakila-crud.*'
),    
'commandMap' => array(
    'migrate' => array(
        // enable eg. data migrations for your local machine
        'modulePaths' => array(
            'sakila'  => 'vendor.schmunk42.yii-sakila-crud.migrations',
        ),
    ),
),

将 Sakila 模块和 MySQL 数据库添加到 app/config/main-local.php

'modules' => array(
    'sakila' => array(
        'class' => 'vendor.schmunk42.yii-sakila-crud.SakilaModule'
    )
),
'components' => array(
    'db'            => array(
        'tablePrefix'      => '',
        'connectionString' => 'mysql:host=localhost;dbname=giic',
        'emulatePrepare'   => true,
        'username' => 'test',
        'password' => 'test',
        'charset'  => 'utf8',
    ),
)

运行迁移以设置数据库

app/yiic migrate

由于 Yii 只能创建 CConsoleApplication,我们必须使用提供的 CLI 入口脚本来创建我们的混合应用程序。运行以下命令来调用已配置的操作

php vendor/schmunk42/giic/giic.php giic generate sakila

您的控制台输出应类似于这个

打开 http://localhos/app-crud-test/www/index.php?r=sakila 来检查您的 CRUDs。使用 admin / admin 登录。

bonus: giix

配置文件还会在 application.extensions.giix 中查找 giix 生成器,您可以下载 giix 并将其放置在扩展中。

配置

"大问题" - 生成两种类型模型(gtc & giix)和四种类型 CRUDs 到五个不同的位置的操作。

查看 Sakila 配置,查看注释以获取说明。

故障排除

  • 请注意XSLT错误,例如:实体:第134行:解析错误:实体引用:期望';' / 实体nbs未定义 / ...
  • 如果没有错误或输出,请检查您在gii浏览器中的生成器模板
  • 将文件权限设置为777/app/runtime/gii-1.1.13
  • 运行composer.phar update以获取最新包

问题

  • 默认情况下,所有输出文件都会被以下内容覆盖

    define('GIIC_ALL_CONFIRMED', true);

修复您的代码模型(GiixModelCodeGiixCrudCode),覆盖此方法

public function confirmed($file)
{
    if (defined('GIIC_ALL_CONFIRMED') && GIIC_ALL_CONFIRMED === true) {
        return true;
    } else {
        return parent::confirmed($file);
    }
}

注意:您可能需要修复现有的扩展,例如giix

非常欢迎帮助,向我们发送拉取请求

已测试生成器