Php CodeIgniter模块加载是否会与本地类产生路径冲突?

Php CodeIgniter模块加载是否会与本地类产生路径冲突?,php,codeigniter,hmvc,Php,Codeigniter,Hmvc,使用控制器(application/controllers/home.php)中的CodeIgniter,观察以下行: $this->load->library(array('account/authentication')) 好的,这将: 从中加载“authentication.php” 应用程序/modules/account/libraries/authentication.php 从application/libraries/account/authentication.p

使用控制器(application/controllers/home.php)中的CodeIgniter,观察以下行:

$this->load->library(array('account/authentication'))
好的,这将:

  • 从中加载“authentication.php” 应用程序/modules/account/libraries/authentication.php
  • 从application/libraries/account/authentication.php加载“authentication.php”
  • 那么,如果两者都存在呢?在实验中,CI似乎在寻找第一个,如果不存在,则加载第二个。这不是一种奇怪的行为吗??这两个文件可能互不相关


    如果您引用的是本地文件或模块文件,是否有一种明确声明的方法

    AFAIK,没有默认目录
    application/modules
    ,我在CI的文档和源代码中找不到它的任何参考。
    我认为CI的行为符合第2条
    事实上,仔细观察CI的加载器()可以发现以下几点:

  • 我们从功能开始
  • 哪个调用函数
  • “_ci_load_class”将传递的库名称分解为两部分:subdir和class name

    首先,它在
    库/subdir/class
    中查找类。如果它发现它-好,它将加载它。
    如果在那里找不到该类,它将在其他一些预定义路径()中查找它。
    如果仍然找不到库,它将进行最后一次尝试,并在
    库/class/class
    中查找它

    我能想到的唯一一件事是,您已经定义了一个指向
    modules
    目录的自定义库路径。但即便如此,CI也应该在
    modules/libraries/account/authentication.php
    中查找库

    编辑:
    我刚刚注意到你用
    hmvc
    标记了你的问题,这确实使用了
    modules
    目录。
    不幸的是,我没有这方面的经验。

    我(显然)会假设这就是您所描述的行为的原因。

    AFAIK,没有默认目录
    application/modules
    ,我在CI的文档和源代码中找不到它的任何参考。
    我认为CI的行为符合第2条
    事实上,仔细观察CI的加载器()可以发现以下几点:

  • 我们从功能开始
  • 哪个调用函数
  • “_ci_load_class”将传递的库名称分解为两部分:subdir和class name

    首先,它在
    库/subdir/class
    中查找类。如果它发现它-好,它将加载它。
    如果在那里找不到该类,它将在其他一些预定义路径()中查找它。
    如果仍然找不到库,它将进行最后一次尝试,并在
    库/class/class
    中查找它

    我能想到的唯一一件事是,您已经定义了一个指向
    modules
    目录的自定义库路径。但即便如此,CI也应该在
    modules/libraries/account/authentication.php
    中查找库

    编辑:
    我刚刚注意到你用
    hmvc
    标记了你的问题,这确实使用了
    modules
    目录。
    不幸的是,我没有这方面的经验。
    我(显然)认为这就是你所描述的行为的原因