Применения синтаксиса подчеркивания |
Так, мы почти у цели нашего изыскания. В завершение рассматриваемого здесь примера рассмотрим один весьма изящный прием программирования. Если попытаться найти в кодовой базе Joomla места, где применяется метод В этой строке кода применяется другой способ вызова того же самого метода truncate (), и делается это с помощью метода с синтаксисом подчеркивания (_) из класса JHTML. (Следует иметь в виду, что в именах классов языка РНР регистр не учитывается, и поэтому имена JHTML и JHtml обозначают один и тот же класс. Но нам приходится указывать имя JHtml, чтобы придерживаться принятых в Joomla условных обозначений имен, тогда как для самого кода РНР это не имеет никакого значения.) Метод JHtml::__() выполняет очень необычную, но замечательную функцию, интерпретируя первый свой аргумент следующим образом. Первая половина этого аргумента (string) обозначает часть имени класса, а полное имя класса в данном случае следующее: JHtmlString (напомним, что регистр в нем особого значения не имеет). Вторая половина данного аргумента обозначает вызываемый метод (в данном случае — truncate ()). А остальные аргументы метода с синтаксисом подчеркивания передаются непосредственно вызываемому методу. В рассматриваемом здесь примере в качестве этих аргументов передаются вводный текст и его максимальная длина. Таким образом, метод JHtml::_() автоматически загружает нужный класс! Это означает, что нам больше не нужно беспокоиться о загрузке класса, а следовательно, мы можем исключить строку кода с вызовом метода JLoader:: register () из файла нашей компоновки. Здесь риведен окончательный вариант кода из первого примера замещения компоновки с использованием синтаксиса подчеркивания, выделенного в соответствующей строке кода полужирным. Как видите, в этом коде отсутствует строка с вызовом метода JLoader:: register (). Но дает он такой же результат, как и прежде.
Где бы теперь ни отображался данный модуль с помощью шаблона beez_20_copy, для этой цели будет использоваться файл видоизмененной компоновки вместо стандартной.
Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |
|