php - Codeigniter 自定义库和命名空间

标签 php codeigniter namespaces

我一直在为我移植到 CI 框架的项目创建自定义库,但我遇到了某些类具有相同名称的问题。

为了避免这个问题,我尝试过实现命名空间但没有成功。我一直在做研究,我知道在过去这可能是不可能的,但是对于较新版本的 PHP,我想知道是否有办法做到这一点,或者我是否正确地做到了这一点。

CI 版本:2.1.4 PHP版本:5.4.12

这是我的设置演示:

application/libraries/class1.php

<?

class class1{
   public function __construct()
    {
        $CI =& get_instance();

        $CI->load->library('foo/class2.php');
    }
}
?>

application/libraries/foo/class2.php

<?

namespace foo

class class2{

    function bar(){

    }

} 

?>

当我运行我的 CI 应用程序时,我会收到以下错误:

不存在的类:class2

感谢您的帮助。

最佳答案

据我所知,如果库文件没有

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

作为第一行代码,它不会加载库。

但是命名空间声明需要在其之上。

CodeIgniter 是为 PHP4 编写的,而命名空间是 PHP5。

此线程中有更多信息:Namespace in PHP CodeIgniter Framework

关于php - Codeigniter 自定义库和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22410710/

相关文章:

javascript - 使用php将视频文件加载到html5播放器

javascript - 在 jquery codeigniter 中上传图像后进行编辑

php - 在 CodeIgniter 中比较日期

xml - 带有 XPath 和多个命名空间的 SelectSingleNode

php - 如何同时运行两个php文件?一个在背景中,另一个在前景中

php - 如何返回数组中的所有结果?

php - 如何用php显示xml内容

mysql - Codeigniter mysql将汉字存储为问号

php - 在我自己的类中使用 mysqli_result::fetch_object 不起作用

c++ - 了解命名空间 using 指令