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

aWe*_*per 23 php codeigniter codeigniter-2

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

Dam*_*rsy 52

正如@david巴克所说,你可能会使用帮手.创建一个名为"site_helper"的文件,其中包含所有函数.

请注意,您需要检查该功能是否已存在,否则您将收到"已声明的功能"错误.

所以,像:

档案site_helper.php(中application/helpers/)

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

if(!functin_exists('other_function')
//....etc.
Run Code Online (Sandbox Code Playgroud)

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

$autoload['helpers'] = array('site');
Run Code Online (Sandbox Code Playgroud)

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

  • 这对我很有用,但我需要将$ autoload ['helpers']更改为$ autoload ['helper'] (2认同)

Shi*_*ven 7

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

$autoload['helpers'] = array('your-global-function-file.php');
Run Code Online (Sandbox Code Playgroud)

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