Где разместить глобальные функции в 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 и пользовательский файл для глобальных функций. Это даст вам более полезный и красивый результат: enter image description here

файл: приложение / помощники / 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/