【问题标题】:Asset Helper and protected View _scripts in CakePHP 2.0CakePHP 2.0 中的资产助手和受保护的视图脚本
【发布时间】:2023-04-02 12:12:01
【问题描述】:

升级到 2.0 后,许多“黑客”(例如访问受保护的属性)不再可能。

例如(AssetHelper):

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

当然是助手致命错误。 有谁知道如何在 2.0 中访问这些属性而不会在此过程中产生太多开销? 如果 AssetHelper 和其他此类类尝试从 Helper 内部访问 View,它们是否已过时?

【问题讨论】:

    标签: cakephp-2.0 attr-protected


    【解决方案1】:

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

    我查看了AssetHelper on Github,它已经过时了。它仍然从ClassRegistry 而不是新方法中检索视图。它还访问旧的 1.3 View 类的__scripts 属性,该属性实际上不是“私有的”。我认为您是正确的,对真实可见性声明的更改破坏了这种使用。

    只是头脑风暴,但我想知道您是否可以创建自己的 View 类,该类具有 _scripts 属性的 getter,例如 $this->_View->getScripts()。我知道在 2.0 中,他们为 alias core classes 添加了一个巧妙的功能;虽然我认为这仅限于帮助程序、组件和行为,但值得考虑。

    希望对您有所帮助。

    【讨论】:

    • 是的,这绝对有帮助。我也在考虑类似的方向。太糟糕了,核心类不允许访问脚本(或其他受保护的属性)。这不像那些必须对开发人员保密的那样:)
    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2015-03-19
    • 2015-09-05
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多