在默认的FuelPHP安装中使用命名空间时,我将以下内容添加到欢迎控制器中(否则未经编辑),然后开始出现错误:
ErrorException [ Compile Error ]: Cannot redeclare class Fuel'Controller'Welcome"
代码I是:
<?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...
}
答案是您必须将配置文件中的控制器前缀更改为以下内容:
'controller_prefix' => 'Controller''',
它实际上写在文档中。(傻我)
如果您的应用程序具有相同名称Welcome
的multiple classes
,则它将提供error
在one file
中
class Welcome extends Controller
{
...
}
在another file
中
class Welcome extends Controller
{
...
}
Codeigniter可能重复无法重新声明类层次结构。请参阅此PHP致命错误:无法重新声明类
在控制器中,不需要设置命名空间。应用程序知道默认命名空间。
如果删除namespace Fuel'Controller;
,则此错误将消失。