使用CodeIgniter,从控制器(application / controllers / home.php)中,观察以下行:
$this->load->library(array('account/authentication'))
AFAIK,这将:
那么,如果两者都存在怎么办?试验,似乎CI寻找第一个,如果不存在,则加载第二个。是不是那种奇怪的行为?这两个文件可能彼此无关。
是否有一种方法可以明确地声明您是在引用本地文件还是模块文件?
答案 0 :(得分:0)
AFAIK,没有默认目录application/modules
,我在CI的文档和来源中找不到任何引用。
我会说CI的行为是根据第2号
确实仔细看看CI的加载器(system/core/Loader.php)揭示了以下内容:
'_ ci_load_class'将您传递的库名称反汇编为两部分:subdir和class name。
首先,它在libraries/subdir/class
中查找该类。如果它发现它 - 好,它会加载它。
如果在那里找不到该类,它会在其他一些预定义的路径($this->_ci_library_paths
)中查找它
如果仍未找到该库,则会进行最后一次尝试并在libraries/class/class
中查找它。
我唯一能想到的是,您已经定义了一个指向modules
目录的自定义库路径。但即使这样,CI也应该在modules/libraries/account/authentication.php
中寻找图书馆。
修改强>
我刚刚注意到您使用hmvc
标记了您的问题,确实使用modules
目录。
不幸的是,我没有经验
我(显然)会假设这导致你描述的行为。