zoukankan      html  css  js  c++  java
  • [CodeIgniter4]-辅助函数

    辅助函数

    顾名思义,帮助程序可以帮助您完成任务。每个帮助文件只是特定类别中功能的集合。URL帮助程序,可以帮助创建链接,有Form Helpers可以帮助您创建表单元素,Text Helpers可以执行各种文本格式设置例程,Cookie Helpers可以设置和读取Cookie,File Helpers可以帮助您处理文件,等等。

    • 加载助手
      • 从非标准位置加载
    • 使用助手
    • “扩展”助手
    • 怎么办?

    与CodeIgniter中的大多数其他系统不同,辅助程序不是以面向对象的格式编写的。它们是简单的程序功能。每个助手功能执行一项特定任务,而不依赖于其他功能。

    默认情况下,CodeIgniter不会加载帮助程序文件,因此使用帮助程序的第一步是加载它。加载后,它将在您的控制器和 视图中全局可用

    帮助程序通常存储在您的system / Helpers或 application / Helpers目录中CodeIgniter将首先出现在您的 application / Helpers目录中如果目录不存在或指定的帮助程序不存在,则CI会在全局system / Helpers /目录中查找

    加载助手

    使用以下方法加载帮助文件非常简单:

    helper('name');
    

    其中,name是帮助程序的文件名,不带.php文件扩展名或“ helper”部分。

    例如,要加载名为cookie_helper.phpCookie帮助器文件 ,您可以这样做:

    helper('cookie');
    

    如果您一次需要加载多个助手,则可以传入一个文件名数组,所有文件名都将被加载:

    helper(['cookie', 'date']);
    

    可以在控制器方法中的任何地方(甚至不是View文件中)加载帮助程序,尽管这不是一个好习惯,只要在使用它之前就将其加载即可。您可以在控制器构造函数中加载帮助程序,以便它们在任何函数中自动可用,也可以在需要它的特定函数中加载帮助程序。

    注解

    上面的Helper加载方法不会返回值,因此请勿尝试将其分配给变量。只需使用如图所示。

    注解

    URL帮助器始终处于加载状态,因此您无需自己加载它。

    从非标准位置加载

    可以从application / Helpers和 system / Helpers之外的目录中加载Helpers,只要可以通过已在Autoloader配置文件的PSR-4部分中设置的名称空间找到该路径即可您将在Helper的名称之前添加可以位于其名称空间的名称。在该名称空间目录中,加载程序希望它位于名为的子目录中Helpers一个例子将有助于理解这一点。

    对于此示例,假设我们已将所有与Blog相关的代码分组到其自己的名称空间中ExampleBlog这些文件位于我们的服务器上的 / Modules / Blog /中因此,我们会将博客模块的帮助程序文件放在 / Modules / Blog / Helpers /中一个blog_helper文件将在 /Modules/Blog/Helpers/blog_helper.php在我们的控制器内,我们可以使用以下命令为我们加载帮助程序:

    helper('ModulesBloglog');
    

    注解

    以这种方式加载的文件中的功能未真正命名空间。命名空间只是用作查找文件的便捷方式。

    使用助手

    加载包含要使用的功能的帮助程序文件后,将以与标准PHP函数相同的方式进行调用。

    例如,要anchor()在您的一个视图文件中使用该函数创建链接,请执行以下操作:

    <?php echo anchor('blog/comments', 'Click Here');?>
    

    其中“单击此处”是链接的名称,“博客/注释”是您要链接的控制器/方法的URI。

    “扩展”助手

    @todo:确定如何扩展这些名称空间等等?

    要“扩展”助手,请在您的application / helpers /文件夹中创建一个文件,其名称与现有助手相同,但前缀为MY_ (此项是可配置的。请参见下文)。

    如果您需要做的就是向现有的助手添加一些功能-可能添加一个或两个功能,或者更改特定助手功能的运行方式-那么用您的版本替换整个助手就太过头了。在这种情况下,最好简单地“扩展”助手。

    注解

    术语“扩展”被宽松地使用,因为助手功能是过程性的和离散的,并且不能在传统的程序意义上进行扩展。在后台,这使您能够添加或替换助手提供的功能。

    例如,要扩展本机Array Helper,您将创建一个名为application / helpers / MY_array_helper.php的文件,并添加或覆盖函数:

    // any_in_array() is not in the Array Helper, so it defines a new function
    function any_in_array($needle, $haystack)
    {
            $needle = is_array($needle) ? $needle : array($needle);
    
            foreach ($needle as $item)
            {
                    if (in_array($item, $haystack))
                    {
                            return TRUE;
                    }
            }
    
            return FALSE;
    }
    
    // random_element() is included in Array Helper, so it overrides the native function
    function random_element($array)
    {
            shuffle($array);
            return array_pop($array);
    }
    

    怎么办?

    在目录中,您将找到所有可用的帮助程序文件的列表。浏览每个人以查看其工作。

  • 相关阅读:
    流行-Manifold学习理解与应用
    狠心奶奶自断亲情,28年后孙女拒绝相见:人有没有不原谅的权利?
    学术论文常用词汇总结(待更新)
    机动车驾驶(2)--- 老司机经验
    关于MySQL数据导出导入
    php5.6-lumen与php5.6-phalcon性能对比
    win7(64bit)+python3.5+pyinstaller3.2安装和测试
    WARNING: Can not get binary dependencies for file...
    一些不错的计算机书籍
    PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载
  • 原文地址:https://www.cnblogs.com/landv/p/12396328.html
Copyright © 2011-2022 走看看