Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Расширяем Хелперы http://forum.kohanaframework.su/viewtopic.php?f=37&t=147 |
Страница 1 из 2 |
Автор: | admin [ 01 май 2012, 23:29 ] |
Заголовок сообщения: | Расширяем Хелперы |
Урок в котором описывается, как создавать свои классы-помощники и расширять уже существующие. Ссылка на урок http://kohanaframework.su/helpers/extending_helpers |
Автор: | nkl [ 25 апр 2013, 10:11 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
Не получается создать свой хелпер. Объясните в чем причина. Нашел php-функцию для генерации guid (uuid) по стандарту RFC 4122. Вот её код: Код:
Я значит создал файл application/classes/Hashgen.php и в нем записал следующее: Код:
Вызываю этот хелпер таким образом: Код:
и получаю ошибку rrorException [ Strict ]: Non-static method Hashgen::create_guid() should not be called statically, assuming $this from incompatible context |
Автор: | nkl [ 25 апр 2013, 10:41 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
Тек, ошибку преодолел, немного изменив хелпер: Код:
Теперь получаю ошибку Undefined index на строку $data .= $_SERVER[`REQUEST_TIME`]; Может я что-то не понимаю в ООП и у меня проблема в синтаксисе. Помогите разобраться пожалуйста. |
Автор: | WinterSilence [ 25 апр 2013, 12:14 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
nkl> это форум фреймворка, а твои вопросы носят скоре общий характер и лучше задавать их на форумах по изучению php дабы не заваливать форум левыми темами. 1. В данном случае ты не понимаешь что такое статически классы, надо прочесть http://www.php.net/manual/en/language.oop5.static.php. 2. $_SERVER[`REQUEST_TIME`] тут не скобки стоят, а тильда. сравни: ` и '. что как бы намекает что и общий курс php освоен не до конца |
Автор: | nkl [ 25 апр 2013, 13:30 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
Этот код писал не я. Я выдрал его откуда-то из инета. То, что там должны быть апострофы вместо тильды я уже понял и без вас (уж элементарный синтаксис я знаю) и в принципе отказался от использования этой функции. Я воспользовался готовым решением, которое взял на форуме разработчиков. И почему это вы называете мой вопрос офтопом? Изначально то я спрашивал о том как правильно создать хелпер и почему мой не работает. |
Автор: | WinterSilence [ 25 апр 2013, 16:50 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
nkl> офтоп потому? что обе ваши проблемы вытекали не из незнания фреймворка, а из-за незнания php. Хэлперами обычно называют классы со статическими методами, ссылку на статические методы и атрибуты я дал. Единственное, что требует кохана (версия "из коробки" конечно) это чтобы файл именовался и располагался согласно правилам фреймворка т.е. находился в APPPATH/classes/, MODPATH/модуль/classes/, SYSPATH/classes/(не рекомендуется) или подпапках и назывался ИМЯ_КЛАССА.PHP_РАСШИРЕНИЕ и содержал класс ИМЯ_КЛАССА например: APPPATH/classes/Elements.php: Код:
ну и соответственно в нужном месте вызываем Elements::menu($somedata) |
Автор: | nkl [ 06 май 2013, 11:39 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
Вот это уже более понятный и развернутый ответ. Хелперы оч. удобная штука, если не увлекаться конечно) |
Автор: | Sergey [ 09 май 2013, 02:11 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
А если увлекаться? |
Автор: | nkl [ 13 май 2013, 10:37 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
То стандартные функции php в хелперах будешь переписывать) |
Автор: | WinterSilence [ 13 май 2013, 14:26 ] |
Заголовок сообщения: | Re: Расширяем Хелперы |
они и так доступны и любого места |
Страница 1 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |