1

CakePHP 1.2 サイトを 2.x にアップグレードしました。

このサイトでは、複数のアプリに対して 1 つのコアを使用しています。シェルを除いて、すべて正常に動作します。

コンソールから既存のシェルの 1 つを実行できません。

アプリを変更しようとするとcake -app store、次のエラーが表示されます。

#!/usr/bin/php -q
PHP Fatal error:  Cannot redeclare class ShellDispatcher in C:\www\domains\cakes\lib\Cake\Console\ShellDispatcher.php on line 24

Fatal error: Cannot redeclare class ShellDispatcher in C:\www\domains\cakes\lib\Cake\Console\ShellDispatcher.php on line 24

次のコマンドを実行しています。

> cd C:\www\domains\cakes\store

> Console\cake -app store

Linux(debian)環境でも同じ結果が得られます。設定に何か問題がありますか、それともケーキのバグですか?

4

2 に答える 2

1

古い Cake 1.3 コアにリンクされている環境パスを削除しましたか? それらが 2.x コアに干渉するわけではありません。とにかくそれらは必要ありません。PHPのみ。

私の推測では、シェルが見つからない場合: 移行ガイドを読んでいない可能性があります: http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html

シェルは /Console/Command/ にあります

利用可能なアップグレード シェルの 1 つを使用して、それを自動的に行うか、手動で変更します。

PS: シェルの動作方法にもいくつかの変更があり、1.3 のシェルが 2.x の箱から出してすぐに動作するわけではありません。これらの問題は手動で解決する必要があります。

于 2012-10-11T13:55:02.300 に答える
0

まず、この問題を解決しようとしてくださった皆様に感謝いたします。

原因がわかりました。私はすべてのアプリに 1 つの database&core.php ファイルを使用していますが、シェルはこれらのファイルをどのように含めるかを好みません。これを変更した後、エラーは消えました。

于 2012-10-11T14:37:14.887 に答える