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

# CodeIgniter User Guide Version 2.1.3

Search User Guide

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

Помощники, как понятно из названия, помогают вам решать задачи. Каждый файл помощника — это просто коллекция функций в определенной категории. Есть помощники 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