我已将CakePHP 1.2网站升级到2.x。
此网站为多个应用使用一个核心。一切都很好,除了贝壳。
我无法从控制台运行其中一个现有的shell。
当我尝试使用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)环境中得到了相同的结果。 配置有问题还是蛋糕中的错误?
答案 0 :(得分:1)
您是否删除了与旧蛋糕1.3核心链接的任何环境路径? 并不是那些干扰你的2.x核心。反正你也不需要它们。只有PHP一个。
我的猜测,如果你没有找到任何shell:你没有阅读你应该拥有的迁移指南: http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html
shell现在位于/ Console / Command /
中使用其中一个可用的升级shell自动进行此操作或手动更改它。
PS:在2.x中,shell工作方式也有一些变化,不会使1.3工作开箱即用。您必须手动解决这些问题。
答案 1 :(得分:0)
首先,谢谢大家试图解决这个问题。
我找到了原因。我正在为所有应用程序使用一个数据库和核心.php文件,而shell不喜欢我包含这些文件的方式。更改后,错误消失了。