Комментарии

Употребление прописных и строчных букв в именах методов и классов
( 0 Голосов )

В языке РНР не различаются прописные и строчные буквы в именах методов и классов. Но при их именовании принято пользоваться смешанным написанием, где первая буква каждого слова является прописной, а остальные — строчными. Как правило, имена классов начинаются с прописной буквы, тогда как имена методов — со строчной, но в именах подключаемых модулей первой указывается строчная буква. Такие условные обозначения упрощают чтение исходного кода.

Рассматриваемый здесь подключаемый модуль обнаруживает в HTML-документе ссылки и преобразует их в удобные для поискового механизма ссылки. Не вдаваясь особенно в подробности, обратим внимание лишь на две самые примечательные особенности метода onAfterRender (). Во-первых, рассмотрим следующий фрагмент кода в начале этого метода:

if ($app->getName() ! = 'site' || $app->getCfg('sef')=='0') {
return true;
}

В этом фрагменте кода проверяются два условия. Первое условие, $app->getName () ! = 'site', позволяет проверить, не находимся ли мы в пользовательской части веб-сайта, а второе условие, app->getCfg ('sef')=='0') > — установлен ли в нуль (т.е. выключен) параметр SEF, определяющий удобные для поиска URL в компоненте Global Configuration (Глобальная настройка). Если оба эти условия истинны, происходит немедленный возврат из данного метода вместе с логическим значением true.

Для чего нужны эти проверки? Мы можем изменить URL только при следующих двух условиях: мы находимся в пользовательской части веб-сайта и включен параметр SEF, определяющий удобные для поиска URL. Следует, однако, иметь в виду, что рассматриваемый здесь подключаемый модуль выполняется всякий раз, когда наступает событие onAfterRender, не зависимо от того, находимся ли мы в пользовательской или административной части веб-сайта, а также от установки параметра SEF.

Упомянутые выше проверки приходится вводить в подключаемый модуль именно для того, чтобы убедиться в наличии условий для его выполнения. Сначала эти условия проверяются, и если они не выполняются, то происходит возврат из метода onAfterRender (), прежде чем в объект документа удастся внести какие-нибудь изменения.

И во-вторых, метод onAfterRender () не принимает никаких аргументов и возвращает логическое значение, обозначающее, насколько успешно он был выполнен. Для разных типов подключаемых модулей предусмотрены разные сигнатуры данного метода (т.е. наборы передаваемых ему аргументов) и возвращаемые значения, поэтому их следует непременно учитывать при создании собственного подключаемого модуля.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости