Asset Helper и защищенный просмотр _скриптов в CakePHP 2.0 - PullRequest
1 голос
/ 23 ноября 2011

После обновления до 2.0 многие «хаки», такие как доступ к защищенным атрибутам, больше не возможны.

Например (AssetHelper):

$scripts = $this->View->_scripts;
//pack and return combined scripts

Конечно, фатальные ошибки помощника.Кто-нибудь знает, как получить доступ к этим атрибутам в 2.0, не создавая слишком много накладных расходов в процессе?Являются ли AssetHelper и другие подобные классы устаревшими, если они пытаются получить доступ к представлению из помощника?

1 Ответ

0 голосов
/ 24 ноября 2011

Новый способ доступа к Представлению из Помощника в 2.0 - $this->_View, который защищен.Это можно увидеть на странице Помощник API .

. Я посмотрел на AssetHelper на Github , и он устарел.Он по-прежнему получает представление из ClassRegistry вместо нового метода.Он также обращается к атрибуту __scripts старого класса 1.3 View, который на самом деле не был «закрытым».Я думаю, вы правы, что изменение в реальных объявлениях видимости нарушило это использование.

Просто мозговой штурм, но мне интересно, не могли бы вы создать свой собственный класс View, который имеет геттер для атрибута _scripts, например $this->_View->getScripts().Я знаю, что в 2.0 они добавили умную способность к псевдонимам базовых классов ;хотя я думаю, что это ограничено помощниками, компонентами и поведением, о чем стоит подумать.

Надеюсь, это поможет.

...