繁体   English   中英

找出在 CodeIgniter 中加载助手的位置

[英]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 的加载器系统,或直接通过includerequire )。

这是关于debug_print_backtrace()PHP 文档

最后,这里有一些关于可以包含此类文件的其他想法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM