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