为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
UYOU 2023-04-02 14:50:58
我想在助手中创建新功能,但它仍然失败: 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 但它仍然无法正常工作
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

它在文档中没有提到,但请记住在你的助手的文件名中添加一个后缀_helper否则它不会在 codeigniter 4 中工作。

例如,如果您创建了一个助手xxx.php,请将其更改为xxx_helper.php

要加载助手,您可以使用助手函数(如:)helper('xxx.php');或将其添加到$helpers数组,该数组是BaseController中的受保护属性


查看完整回答
反对 回复 2023-04-02
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

如果您的想法是“扩展”(替换) stystem/helpers/text_helper上的函数,请注意文件名中的小写字母,您必须尊重它。

此外,助手不需要命名空间......助手加载器将搜索它。

helper() 方法将扫描 app/Config/Autoload.php 中定义的所有 PSR-4 命名空间,并加载所有匹配的同名助手。这允许加载任何模块的助手,以及您专门为此应用程序创建的任何助手。加载顺序如下:

  1. app/Helpers - 这里加载的文件总是首先加载。

  2. {namespace}/Helpers - 所有命名空间都按照它们定义的顺序循环。

  3. system/Helpers - 最后加载基础文件

命名空间将用于在其他位置加载助手,例如:

helper('Libraries\MyFunctions');

只要可以通过 PSR-4 中设置的命名空间找到该路径

查看完整回答
反对 回复 2023-04-02
?
互换的青春

TA贡献1797条经验 获得超6个赞

您需要将助手加载到 app/Config/Autoload.php 中,但仍然无法正常工作,请尝试运行 composer dump-autoload



查看完整回答
反对 回复 2023-04-02
  • 3 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信