我到处都有便利的方法。我现在已经把它们推到了几个辅助类中,并且我将帮助类保护为我的图层超类型的成员。
在我来到Zend View之前,一切都在顺风顺水。我已经扩展了Zend View以使我的图层超类型,但是当我尝试附加受保护的成员时,它会抛出:
Zend View异常:设置私有或受保护的类成员不是 允许的。
首先,为什么不允许这样的成员?有任何想法吗?其次,你过去曾经绕过它吗?那是怎么回事? (似乎框架通过前导下划线来检测受保护的成员。这看起来有点昙花一现,也很容易解决。)
注意 - 我不是说我会绕过它。我只是想弄清楚其他人过去做过什么(因为这似乎是一个奇怪的约束)。
这对我来说非常重要,因为我使用特征将帮助程序和相关的代理方法带入每个超类。我不想仅为View维护一个单独的特征。或者,我不想让助手成为每个超类的公共成员。
谢谢!
答案 0 :(得分:1)
数据封装。
主要不允许使用下划线属性,以便开发人员不会意外覆盖属于框架的View属性。
这实际上保护了所有框架的View属性,并允许开发人员免费下雨,而不是您希望设置的任何公共属性。
Zend View的作者可以确定两件事:(1)他们控制(和作者)私有和受保护的类属性;(2)您控制公共属性。这使得逻辑数据封装和可维护的类重载。