CakeDC Migration Pluginをインストールしてコマンドを試してみましcake Migrations.migration generate
たが、Error: Plugin Migrations could not be foundというエラーが表示されました。
プラグインのインストール パスはapp\Plugin\Migrations
. コマンドをグローバルにD:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console
実行できるように、CakePHP コンポーザーがインストールされているディレクトリであるシステム環境変数へのパスを追加しました。cake
D:\xampp\htdocs\myproj\app>cake
Welcome to CakePHP v2.5.4 Console
---------------------------------------------------------------
App : app
Path: D:\xampp\htdocs\myproj\app\
---------------------------------------------------------------
Current Paths:
-app: app
-working: D:\xampp\htdocs\myproj\app
-root: D:\xampp\htdocs\myproj
-core: D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib
Changing Paths:
Your working path should be the same as your application path. To change your path use the '-app' param.
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp
Available Shells:
[CORE] acl, api, bake, command_list, completion, console, i18n, schema, server,test, testsuite, upgrade
[app] demo, send_mail_at_call_time, update_num_order_cache
To run an app or core command, type cake shell_name [args]
To run a plugin command, type cake Plugin.shell_name [args]
To get help on a specific command, type cake shell_name --help
D:\xampp\htdocs\myproj\app>cake Migrations.migration generate
Error: Plugin Migrations could not be found.
#0 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Core\App.php(227):CakePlugin::path('Migrations')
#1 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Core\App.php(549):App::path('Console/Command', 'Migrations')
#2 [internal function]: App::load('MigrationShell')
#3 [internal function]: spl_autoload_call('MigrationShell')
#4 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(249): class_exists('MigrationShell')
#5 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(200): ShellDispatcher->_getShell('Migrations.migr...')
#6 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(66): ShellDispatcher->dispatch()
#7 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\cake.php(54): ShellDispatcher::run(Array)
#8 {main}
パスを に変更しましたapp\Vendor\bin
が、それでもエラーが発生しました:
D:\xampp\htdocs\myproj\app\Vendor\bin>cake Migrations.migration generate
Error: Plugin Migrations could not be found.
#0 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Core\App.php(227):CakePlugin::path('Migrations')
#1 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Core\App.php(549):App::path('Console/Command', 'Migrations')
#2 [internal function]: App::load('MigrationShell')
#3 [internal function]: spl_autoload_call('MigrationShell')
#4 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(249): class_exists('MigrationShell')
#5 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(200): ShellDispatcher->_getShell('Migrations.migr...')
#6 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\ShellDispatcher.php(66): ShellDispatcher->dispatch()
#7 D:\xampp\htdocs\myproj\app\Vendor\cakephp\cakephp\lib\Cake\Console\cake.php(54): ShellDispatcher::run(Array)
#8 {main}
再度、パスを に変更しましたapp\Console
が、エラーはShellDispatcher.php のファイルが見つかりません。ファイルは、上記のcake
グローバル システム パスに存在しますが、 には存在しませんapp\Console
。
D:\xampp\htdocs\myproj\app>cd Console
D:\xampp\htdocs\myproj\app\Console>cake Migrations.migration generate
Warning: include(Cake\Console\ShellDispatcher.php): failed to open stream: No su
ch file or directory in D:\xampp\htdocs\myproj\app\Console\cake.php on line 28
Warning: include(): Failed opening 'Cake\Console\ShellDispatcher.php' for inclusion (include_path='D:\xampp\htdocs\myproj\lib;.;D:\xampp\php\PEAR') in D:\xampp\htdocs\myproj\app\Console\cake.php on line 28
Fatal error: Could not locate CakePHP core files. in D:\xampp\htdocs\myproj\app\Console\cake.php on line 29
[編集]
に 2 つのプラグインがありますapp\Plugin
。
app\
|--Plugin\
|-- Migrations
|-- Qdmail
私はCakePlugin::loadAll()
入っていてapp\Config\bootstrap.php
、これを試しました:
CakePlugin::loadAll();
var_dump(CakePlugin::loaded('Migrations'));
var_dump(CakePlugin::loaded('Qdmail'));
最初の行は戻りますfalse
が、2 行目は戻りますtrue
。移行プラグインが正しく読み込まれなかった可能性があります。