Как создать свой helper в yii?
Ответ
Хелпер – это сборка вспомогательных функций. Без объединения этих функций в хелпер, они были бы разбросаны по коду, что уменьшало бы читабельность кода и затрудняло бы повторное использование таких функций в новых проектах.
Создаем папку helpers в папке protected. В папку helpers поместим файл CGoodHelper.php с кодом:
1 2 3 4 5 6 7 8 |
class CGoodHelper { // функция выделяет домен из url public static function getDomain($url) { return parse_url($url, PHP_URL_HOST); } } |
Эта функция объявлена с ключевым словом static, что позволяет ее использовать без создания объекта класса СGoodHelper.
Далее в файле config/main.php добавляем строку в import:
1 |
'application.helpers.*', |
То есть теперь import выглядит так:
1 2 3 4 5 |
'import'=>array( 'application.models.*', 'application.components.*', 'application.helpers.*', ), |
Это позволяет подгружать хелпер при необходимости и избавляет нас от явного подключения класса.
Теперь можно пользоваться нашим хелпером, вызывая необходимые функции (хотя у нас в примере она всего одна) так:
1 |
echo CGoodHelper::getDomain('www.itmathrepetitor.ru/math/tasks/3'); |
Не забывайте документировать ваши функции для экономии времени в будущем, когда в новых проектах вы будете подключать и дописывать свои хелперы. И еще помните, что можно создавать иерархии хелперов (наследование никто не отменял).