Pull to refresh

Comments 8

Класс plgContentItemList имеет конструктор, который, в целях совместимости с PHP4 реализован именно в старом стиле.
И тут же следующей строчкой вы пишете
parent::__construct($subject, $params);

Или в джумле так и надо писать для совместимости с PHP4?
Хм… В демо-плагине, который поставляется с Джумлой, есть такой коммент:
For php4 compatability we must not use the __constructor as a constructor for plugins because func_get_args ( void ) returns a copy of all passed arguments NOT references. This causes problems with cross-referencing necessary for the observer design pattern.

т.е., если я правильно понял:
Для совместимости с php4 мы не должны использовать __constructor в качестве коструктора, т.к. func_get_args(void) возвращает копии всех передаваемых в нее аргументов, а НЕ ссылки. Это может вызвать проблемы при использовании паттерна Наблюдатель

согласен, что не очень удачно написал про старый стиль и т.п., исправлю. Спасибо за коммент!

Думаю, что этот комментарий из демо-плагина связан с внутренней реализацией Джумлы… если честно, пока с этим не разбирался, просто, как говорится, принял на веру :)
$mainframe — это глобальная ссылка на экземпляр JApplication. JApplication — это «одиночка» (т.е. объект этого класса существует в единственном экземпляре, создается оператором JFactory::getApplication), он создается в начале работы приложения Joomla, т.е. в начале генерации страницы. Кстати говоря, этот оператор в данном примере не нужен :) Исправлю, спасибо за коммент!
Sign up to leave a comment.

Articles