猿问

如何在 CodeIgniter 4 中创建和加载新的助手

我想在助手中创建新功能,但它仍然失败: Call to undefined function

我保存我的助手在 BaseController 上app/Helper/Text_helper.php使用namespace App\Helpers; 和加载助手使用protected $helpers = ['text'];

参考: https: //codeigniter4.github.io/userguide/general/helpers.html#extending-helpers 但它仍然无法正常工作


UYOU
浏览 135回答 3
3回答

慕容森

它在文档中没有提到,但请记住在你的助手的文件名中添加一个后缀_helper否则它不会在 codeigniter 4 中工作。例如,如果您创建了一个助手xxx.php,请将其更改为xxx_helper.php。要加载助手,您可以使用助手函数(如:)helper('xxx.php');或将其添加到$helpers数组,该数组是BaseController中的受保护属性

鸿蒙传说

如果您的想法是“扩展”(替换) stystem/helpers/text_helper上的函数,请注意文件名中的小写字母,您必须尊重它。此外,助手不需要命名空间......助手加载器将搜索它。helper() 方法将扫描 app/Config/Autoload.php 中定义的所有 PSR-4 命名空间,并加载所有匹配的同名助手。这允许加载任何模块的助手,以及您专门为此应用程序创建的任何助手。加载顺序如下:app/Helpers - 这里加载的文件总是首先加载。{namespace}/Helpers - 所有命名空间都按照它们定义的顺序循环。system/Helpers - 最后加载基础文件命名空间将用于在其他位置加载助手,例如:helper('Libraries\MyFunctions');只要可以通过 PSR-4 中设置的命名空间找到该路径

互换的青春

您需要将助手加载到 app/Config/Autoload.php 中,但仍然无法正常工作,请尝试运行 composer dump-autoload
随时随地看视频慕课网APP
我要回答