找出在CodeIgniter中加载helper的位置



我有一个项目,其中包含几个控制器,视图和助手(原来的开发人员,从我接替的工作,没有费心使用模型)。在其中一个控制器(Iframes.php)中,(当然)有一个函数__construct(),一个index()和一个名为view()的函数。在这个结构中,有一个$this->load->helper('iframes');没有加载其他帮助程序。

正在访问的网址是https://website.ext/iframes/view/1234567890

在iframes_helper.php中,没有任何对其他helper文件的引用。但是iframes_helper.php调用了一个名为get_loans()的函数。该函数只存在于一个文件中:loans_helper.php

有其他的控制器加载loans_helper.php(以其正常方式)。

如果我重命名loans_helper.php(为loans_helper.php1),系统将无法加载,说明文件丢失。它没有告诉我哪里有被引用到缺失的文件。

我已经搜索了所有的文件

load->helper('loans')

甚至

load->helper('loans

('loans')

但是没有指向loans_helper文件的引用。至少在Iframes控制器中使用的控制器或属于它的文件中不会。

但是函数get_loans仍然是可访问的。这怎么可能呢?或者更确切地说:我如何找到正在加载帮助器的位置?

艾伯特

请告诉我,如果我需要添加一些代码。

您还应该使用双引号搜索'loan'的变体,"loan,因为这也是有效的。

loans_helper.php文件的顶部,添加debug_print_backtrace(); die;,它将输出一些关于执行路径的有用信息。请注意,如果在浏览器中进行测试,则应该查看页面的源代码,以获得更可用的格式。从回溯中,您将能够确定文件是如何被包含的(即通过CI的加载器系统,或直接通过includerequire)。

这是debug_print_backtrace()的PHP文档

最后,这里有一些关于在哪里可以包含这样一个文件的其他想法:

  • CI的autoload.php配置文件。有一个自动加载帮助文件的项。
  • 如果项目中存在Composer,请检查该Composer。
  • 从技术上讲,CI的helper文件不需要通过CI的加载器包含,所以该文件可能需要使用includerequire手动包含。

相关内容

  • 没有找到相关文章

最新更新