在默认的FuelPHP安装中使用命名空间我将以下内容添加到欢迎控制器(否则未经编辑),然后我开始收到错误:
ErrorException [ Compile Error ]: Cannot redeclare class Fuel\Controller\Welcome"
我的代码是:
<?php
namespace Fuel\Controller;
use Fuel\Core\Controller;
class Welcome extends Controller
{
...
}
这可能是一个初学者的问题,但我无法弄清楚为什么碰撞正在发生,我已经尝试了我能想到的一切。
编辑: 我甚至尝试将以下代码放在类前面,错误消失了,但显示了一个非常通用的404页面。 (不是默认情况下使用FuelPHP显示的那个,而是黑色/灰色显示的那个)
if (class_exists("Controller\Welcome",false)) {
// echo "here. (" . __FILE__ . ":" . __LINE__ . ")\n";
} else {
//Class definition...
}
答案 0 :(得分:1)
答案结果是您必须将配置文件中的控制器前缀更改为以下内容:
'controller_prefix' => 'Controller\\',
实际上是在文档中写的。 (愚蠢的我)
答案 1 :(得分:0)
如果您的应用程序multiple classes
具有相同名称Welcome
,那么它将提供error
在one file
class Welcome extends Controller
{
...
}
在another file
class Welcome extends Controller
{
...
}
Codeigniter Cannot redeclare class Hierarchy可能重复。 见PHP Fatal error: Cannot redeclare class
答案 2 :(得分:0)
在您的控制器中,您不需要设置命名空间。该应用程序知道默认命名空间。
如果删除namespace Fuel\Controller;
此错误将消失。