Codeigniter:向控制器类添加命名空间时出现服务器错误

时间:2016-02-19 16:12:46

标签: php codeigniter namespaces internal-server-error

我正在使用codeigniter构建应用程序,我的应用程序文件夹层次结构如下:

|-controller
   |-admin
      |-dashboard

我想将信息中心添加到namespace admin,所以我这样做了:

defined('BASEPATH') OR exit('No direct script access allowed');
namespace admin;
class Dashboard extends MY_Controller {
     //constructor and some methods
}

问题在于,每当我尝试从uri localhost/myapp/admin/dashboard访问仪表板类时,我都会在浏览器上收到错误:

Server error

500

但是,如果我注释掉namespace admin;行,它就会运行而没有任何错误。

为什么命名空间会产生这样的内部服务器错误?

如何在codeigniter中为控制器类使用命名空间时防止此类错误?

2 个答案:

答案 0 :(得分:1)

原因是Codeigniter本身不支持名称空间。他们这样做是为了允许Codeigniter for PHP 4的向后兼容性。命名空间仅在PHP 5.3.0及更高版本中可用。

答案 1 :(得分:1)

首先检查您使用的是哪个版本的PHP和codeigniter,然后告诉我们。

CodeIgniter不支持名称空间,具体取决于版本。如果你想使用命名空间php版本必须是> = 5.3.0 Codeigniter不使用命名空间,因为它是为了支持php 4而编写的

如果您必须使用名称空间,那么我将您链接到Stack Overflow Similar Problem link,该名称已通过进行配置编辑而使用命名空间使用命名空间的Upvoted参考。您可以尝试,但默认情况下它不支持