25

我创建了一些实用功能h(),例如充当echo htmlentities($var). 我希望这些功能随处可用。所以我把它放在哪里。

4

4 回答 4

56

正如@david barker 所说,您可能会使用助手。创建一个名为“site_helper”的文件,其中包含所有功能。

但是请注意,您需要检查该函数是否已经存在,否则您将收到“函数已声明”错误。

所以,像:

文件site_helper.php(中application/helpers/

if(!function_exists('h'))
{
  function h($value)
  {
   return htmlentities($value);
  }
}

if(!functin_exists('other_function')
//....etc.

然后你可以在 config/autoload.php 中自动加载它:

$autoload['helpers'] = array('site');

^-- 注意你如何只使用下划线之前的部分来调用文件。此外,助手不是类,而是函数的集合。

于 2012-05-31T09:58:04.637 回答
7

您应该在 /application/config/constants.php 文件中包含全局变量文件。然后将您的全局函数文件移动到 /application/helpers 文件夹。然后你应该自动加载全局函数文件。/application/config/autoload.php

$autoload['helpers'] = array('your-global-function-file.php');

我建议不要在系统文件夹项目中移动任何东西,因为升级绝对是一场噩梦。有时重构你的代码以符合 CI 逻辑,从长远来看可能更快,而不是试图在整个地方复制/粘贴东西。

于 2012-05-31T09:55:44.523 回答
4

这正是 Helpers 的用途。

创建一个新的帮助程序(记得用 _helper.php 附加它)并将它放在您的帮助程序文件夹中。

您可以在配置中自动加载它(这样您就可以在任何地方使用它),也可以在需要时手动加载它。

于 2012-05-31T09:58:08.357 回答
3

使用codeigniter-kint和全局函数的自定义文件。这将为您提供更有用和更漂亮的输出,例如: 在此处输入图像描述

文件:application/helpers/globalfunctions_helper.php

<?php
    /**
     * @file Global Helper Functions
     * 
     */

    if(!function_exists('pr'))
    {
      function pr($value=false){
       $CI = get_instance();
       $CI->load->library('kint');
       return @Kint::dump($value);   
      }
    }
    if(!function_exists('dp')){
      function dp($value=false)
      {
       $CI = get_instance();
       $CI->load->library('kint');
       Kint::dump($value);
       die();
      }
    }

另见:http ://raveren.github.io/kint/

于 2013-09-12T11:56:30.343 回答