簡體   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