2011-11-22 63 views
1

升级到2.0后,许多“黑客”就像访问受保护的属性一样不再可能。资产助手和受保护的CakePHP 2.0中的查看_scripts

例如(AssetHelper):

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

助手致命错误,当然。 有谁知道如何在2.0中访问这些属性,而不会在这个过程中创建太多开销? AssetHelper和其他类如果尝试从Helper中访问视图,它们是否过期?

回答

0

在2.0中访问助手视图的新方法是$this->_View受保护。你可以在Helper API page上看到它。

我看着AssetHelper on Github,它已经过时了。它仍然从ClassRegistry取代视图,而不是新方法。它还访问旧的1.3 View类的__scripts属性,该属性实际上不是“私有”的。我认为你对正确的可见性声明的改变已经打破了这种用法是正确的。

只是头脑风暴,但我不知道你是否可以让自己的视图类具有_scripts属性如$this->_View->getScripts()的吸气剂。我知道在2.0版本中他们增加了一个漂亮的功能,以alias core classes;虽然我认为这仅限于助手,组件和行为,但这是需要考虑的。

希望有所帮助。

+0

是的,这明确地帮助。我正在考虑类似的方向。太糟糕了,核心类不允许访问脚本(或其他受保护的属性)。它不像那些必须被开发人员保密的东西:) – mark