在codeigniter中放置全局函数的位置

时间:2012-05-31 09:49:54

标签: php codeigniter codeigniter-2

我创建了一些实用程序函数,例如h()作为echo htmlentities($var)。我希望这些功能随处可用。所以我把它放在哪里。

4 个答案:

答案 0 :(得分:50)

正如@david巴克所说,你可能会使用帮手。创建一个名为“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');

^ - 请注意您如何仅使用下划线之前的部分来调用文件。此外,助手不是类,而是一组函数。

答案 1 :(得分:7)

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

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

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

答案 2 :(得分:4)

这正是助手的目的。

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

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

答案 3 :(得分:3)

使用codeigniter-kint和全局函数的自定义文件。 这将为您提供更有帮助和美观的输出,如: enter image description here

文件: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/