Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

CodeIgniter User Guide Version 2.1.0


Функции помощников

Помощники, как понятно из названия, помогают вам решать задачи. Каждый файл помощника — это просто коллекция функций в определенной категории. Есть помощники URL, которые помогают создавать ссылки, есть помощники Form, которые помогают создавать элементы форм, помощники Text выполняют различные операции форматирования текста, помощники Cookie устанавливают и считывают куки, помощники File помогают вам работать с файлами и так далее.

В отличие от большинства других систем в CodeIgniter, помощники написаны не в ООП-формате. Они являются простыми процедурными функциями. Каждая функция-помощник выполняет одну специфическую задачу, вне зависимости от других функций.

CodeIgniter не загружает файлы помощников по умолчанию, поэтому первым шагом при использовании помощников является их загрузка. Загруженные помощники доступны в ваших контроллерах и отображениях.

Помощники обычно храняться в директориях system/helpers и application/helpers . CodeIgniter сначала ищет в директории application/helpers. Если эта директория не существует, или если указанный помощник в ней не обнаружен, CodeIgniter будет искать в глобальной директории system/helpers.

Загрузка помощника

Файлы помощников загружаются следующей функцией

$this->load->helper('name');

Где name это имя файла помощника, без расширения .php, и постфикса _helper.

Например, чтобы загрузить файл помощника URL, который называется url_helper.php, сделайте следующее:

$this->load->helper('url');

Загруженный помощник доступен в любой функции контроллера, и даже в отображениях, хотя это не хорошая практика. Вы можете загружать помощников в конструкторе контроллера, если они необходимы для всех функций, или загружать их в конкретной функции, если они востребованы только в ней.

Примечание: Функция загрузки помощников не возвращает значения, поэтому не имеет смысл присваивать ее результат переменной. Просто используйте, как показано.

Загрузка нескольких помощников

Вы можете указать список требуемых помощников в массиве, например так:

$this->load->helper( array('helper1', 'helper2', 'helper3') );

Автозагрузка помощников

Если вы обнаружили, что нуждаетесь в конкретном помощнике глобально по всему приложению, вы можете попросить CodeIgniter автоматически загружать его при инициализации системы. Чтобы сделать это, откройте ваш файл application/config/autoload.php и добавьте имя нужного помощника в массив автозагрузки. Подробные инструкции вы найдете в этом файле.

Использование помощника

После загрузки файла помощника, содержащего функции, вы можете использовать их, просто как обычные функции PHP.

Например, чтобы создать ссылку используя функцию anchor() в одном из ваших отбражений, вы можете сделать так:

<?php echo anchor('blog/comments', 'Click Here');?>

Где "Click Here" это имя ссылки, и "blog/comments" это URI к контроллеру и функции, с которыми связывает эта ссылка.

Расширение помощников

Чтобы расширить помощника, создайте файл в вашей директории application/helpers/ с именем, идентичным существующему помощнику, но с префиксом MY_ (этот элемент конфигурируется, смотрите ниже).

Если вы просто хотите добавить некоторые функции в существующий помощник, достаточно будет расширить его. В этом случае термин «расширение» не совсем корректен, так как функции помощников являются процедурными, и не расширяются в традиционном понимании. Но это дает возможность добавить новые функции, или изменить поведение родных функций помощника.

Например, чтобы расширить родной Array Helper, создайте файл с именем application/helpers/MY_array_helper.php, и добавьте в него новые или перегрузите существующие функции:

// any_in_array() отсутствует в Array Helper, поэтому мы определяем новую функцию
function any_in_array($needle, $haystack)
{
    $needle = (is_array($needle)) ? $needle : array($needle);

    foreach ($needle as $item)
    {
        if (in_array($item, $haystack))
        {
            return TRUE;
        }
        }

    return FALSE;
}

// random_element() включено в Array Helper, поэтому мы перегружаем родную функцию
function random_element($array)
{
    shuffle($array);
    return array_pop($array);
}

Установка вашего собственного префикса

Префикс для расширения помощников тот же, который используется при расширении библиотек и классов ядра. Чтобы установить собственный префикс, откройте ваш файл application/config/config.php и найдите этот элемент:

$config['subclass_prefix'] = 'MY_';

Пожалуйста помните что все родные библиотеки CodeIgniter префиксируются с CI_, поэтому НЕ используйте такой префикс.

Что теперь?

В оглавлении вы найдете список всех доступных файлов помощников. Исследуйте их, чтобы увидеть, что они умеют делать.

Поделиться


Переведено в компании Аринт.

Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter

Яндекс.Метрика