5

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

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

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

请告诉我我错过了什么?

4

1 回答 1

17

根据最新的文档,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 要求您手动加载插件,因此您还需要通过在最后一行app/Config/bootstrap.php添加CakePlugin::loadAll();或来更新。CakePlugin::load('Tmaker');

然后,您应该能够从命令行访问您的 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!
于 2011-08-08T15:17:57.073 回答