Где разместить глобальные функции в codeigniter
Я создал несколько функций утилиты, таких как one h()
, который действует как echo htmlentities($var)
. Я хочу, чтобы эти функции были доступны везде . так куда мне его девать?
4 ответов
как сказал @ david barker, вы можете использовать помощника. Создайте файл с именем, например, "site_helper", который содержит все функции.
имейте в виду, что вам нужно проверить, существует ли функция уже, или вы получите ошибку "функция уже объявлена".
так, что-то вроде:
site_helper.php
(in 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');
^-- обратите внимание, как вы используете только часть перед подчеркиванием для вызова файла. Кроме того, помощники-это не классы, а набор функций.
вы должны включить файл глобальных переменных в/application/config / constants.PHP-файл. Затем переместите файл глобальной функции в папку/application / helpers. Затем вы должны автоматически загрузить файл global functions. / application / config / автозапуск.в PHP
$autoload['helpers'] = array('your-global-function-file.php');
Я бы предложил ничего не перемещать внутри проекта системной папки, так как обновление было бы абсолютным кошмаром. Иногда рефакторинг кода в соответствии с логикой CI, возможно, быстрее в долгосрочной перспективе, а не пытаясь скопировать / вставить вещи повсюду.
Это именно то, для чего нужны помощники.
создайте нового помощника (не забудьте добавить его с _helper.php) и поместите его в свою вспомогательную папку.
вы можете либо автоматически загрузить его в свою конфигурацию (так что вы можете использовать его в любом месте), либо просто вручную загрузить его при необходимости.
использовать codeigniter-kint и пользовательский файл для глобальных функций.
Это даст вам более полезный и красивый результат:
файл: приложение / помощники / 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/