我正在使用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中为控制器类使用命名空间时防止此类错误?
答案 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参考。您可以尝试,但默认情况下它不支持