I have created a new CakePHP 2.0 app and want to run a plugin's shell.
<?php
// app\Plugin\Tmaker\Vendors\Shells\TmakerShell.php
class TmakerShell extends Shell {
}
However, I can't see it when running Console/cake
from the command-line.
Please advise my what I have missed?
According to the latest documentation, the path for shells has changed to app/Console/Command/
.
Move your shell to the following location: app/Plugin/Tmaker/Console/Command/TmakerShell.php
(not sure if plugin directory names are camel-cased in CakePHP 2.0, but it seems to work either way.)
<?php
class TmakerShell extends Shell {
public function main() {
$this->out('It works!');
}
}
As CakePHP 2.0 requires you to load plugins manually, you also need to update app/Config/bootstrap.php
by adding CakePlugin::loadAll();
or CakePlugin::load('Tmaker');
to the last line.
You should then be able to access your shell from the command-line. It looks like this in 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!