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

CodeIgniter User Guide Version 2.1.3


Хуки — расширение ядра фреймворка

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

Включение хуков

Хуки глобально включаются и выключаются установкой параметра в файле application/config/config.php:

$config['enable_hooks'] = TRUE;

Определение хука

Хуки определяются в файле application/config/hooks.php. Каждый хук указывается как массив, в соответствии с этим прототипом:

$hook['pre_controller'] = array(
                                'class'    => 'MyClass',
                                'function' => 'Myfunction',
                                'filename' => 'Myclass.php',
                                'filepath' => 'hooks',
                                'params'   => array('beer', 'wine', 'snacks')
                                );

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

Множественные вызовы одного хука

Если вы хотите использовать несколько хуков в одной точке, просто сделайте ваш массив многомерным, например так:

$hook['pre_controller'][] = array(
                                'class'    => 'MyClass',
                                'function' => 'Myfunction',
                                'filename' => 'Myclass.php',
                                'filepath' => 'hooks',
                                'params'   => array('beer', 'wine', 'snacks')
                                );

$hook['pre_controller'][] = array(
                                'class'    => 'MyOtherClass',
                                'function' => 'MyOtherfunction',
                                'filename' => 'Myotherclass.php',
                                'filepath' => 'hooks',
                                'params'   => array('red', 'yellow', 'blue')
                                );

Обратите внимание на скобки после каждого индекса:

$hook['pre_controller'][]

Это позволит вам использовать несколько скриптов в одной точке. Они будут выполняться в том порядке, в котором вы указываете их.

Точки хуков

Вот список доступных точек хуков.

Поделиться


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

Спасибо!

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

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

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

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