【问题标题】:Run plugin's shell in cakephp 2.0在 cakephp 2.0 中运行插件的外壳
【发布时间】:2011-08-08 08:29:57
【问题描述】:

我创建了一个新的 CakePHP 2.0 应用程序并想运行一个插件的 shell。

<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {  
}

但是,从命令行运行 Console/cake 时我看不到它。

请告诉我我错过了什么?

【问题讨论】:

    标签: shell cakephp plugins cakephp-2.0


    【解决方案1】:

    根据latest documentation,shell 的路径已更改为app/Console/Command/

    将你的 shell 移动到以下位置:app/Plugin/Tmaker/Console/Command/TmakerShell.php(不确定在 CakePHP 2.0 中插件目录名称是否为驼峰式,但它似乎可以使用任何一种方式。)

    <?php
    class TmakerShell extends Shell {
        public function main() {
            $this->out('It works!');
        }
    }
    

    由于 CakePHP 2.0 要求您手动加载插件,您还需要通过在最后一行添加 CakePlugin::loadAll();CakePlugin::load('Tmaker'); 来更新 app/Config/bootstrap.php

    然后您应该能够从命令行访问您的 shell。在 Windows 中看起来像这样:

    C:\xampplite\htdocs\cake2\app>..\lib\Cake\Console\cake Tmaker.tmaker
    
    Welcome to CakePHP v2.0.0-beta Console
    ---------------------------------------------------------------
    App : app
    Path: C:\xampplite\htdocs\cake2\app\
    ---------------------------------------------------------------
    It works!
    

    【讨论】:

    • 如何在 TmakerShell 中使用相同的插件模型。例如,我在 app/Plugin/Tmaker/Model 文件夹中有模型名称为 abc.php 现在我想在 TmakerShell 中使用这个模型。如何做到这一点?
    • @PardeepSingh 您可能需要使用插件语法:public $uses = array('Tmaker.Abc');book.cakephp.org/2.0/en/appendices/…
    • 这就是正在做的事情,但出现错误:找不到插件 Tmaker。但是当我用 -app /path/app 运行 cake 时,命令没有被执行。如果我使用 -app 选项,蛋糕没有输出。
    猜你喜欢
    • 2021-11-21
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多