我创建了一些实用程序函数,例如h()
作为echo htmlentities($var)
。我希望这些功能随处可用。所以我把它放在哪里。
答案 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和全局函数的自定义文件。 这将为您提供更有帮助和美观的输出,如:
文件: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();
}
}