[英]Find out where a helper is being loaded in CodeIgniter
我有一个项目,其中包含几个控制器、视图和助手(我接手工作的原始开发人员没有费心使用模型)。 在其中一个控制器(Iframes.php)中,(当然)有一个 function __construct()、一个 index() 和一个名为 view() 的 function。 在构造中,有一个 $this->load->helper('iframes'); 没有其他助手正在加载。
该网站正在通过地址https://website.ext/iframes/view/1234567890访问
在 iframes_helper.php 中,没有对另一个帮助文件的引用。 但是 iframes_helper.php 正在调用名为 get_loans() 的 function。 function 只存在于一个文件中:loans_helper.php
还有其他控制器加载了loans_helper.php(以正常方式)。
如果我将loans_helper.php 重命名为loans_helper.php1,系统将无法加载,说明缺少文件。 它没有告诉我在哪里提到了丢失的文件。
我已经搜索了所有文件
load->helper('loans')
就算
load->helper('loans
和
('loans')
但是没有任何地方可以参考loans_helper 文件。 至少不在 Iframe Controller 或属于它的文件中使用的控制器中。
但是 function get_loans 仍然可以访问。 怎么会这样? 或者更确切地说:我如何找出加载助手的位置?
阿尔伯特
请告诉我,如果我需要添加一些代码。
您还应该使用双引号"loan
loan" 搜索 'loan' 的变体,因为这也是有效的。
在loans_helper.php
文件顶部,添加debug_print_backtrace(); die;
debug_print_backtrace(); die;
,其中会 output 关于执行路径的一些有用信息。 请注意,如果您在浏览器中进行测试,您应该查看页面的源代码,以获得更可用的格式。 从回溯中,您将能够确定文件是如何被包含的(即通过 CI 的加载器系统,或直接通过include
或require
)。
这是关于debug_print_backtrace()
的PHP 文档。
最后,这里有一些关于可以包含此类文件的其他想法:
autoload.php
配置文件中。 有一个用于自动加载帮助文件的项目。include
或require
手动包含该文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.