FuelPHP中的“无法重新声明课程”问题

时间:2013-08-26 06:55:40

标签: php fuelphp

在默认的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...

}

3 个答案:

答案 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;此错误将消失。