有没有人尝试过?是否有可能,如果是的话,如果我试图完成它会遇到什么样的问题?CakePHP中的控制器继承?
回答
当然,你可以很容易地在Cake ..中分类控制器,然后你通常会利用它们的钩子函数,比如'beforeFilter','afterFilter'等等来将运行时逻辑添加到你的控制器中。蛋糕控制器和您在路由中配置的最终控制器之间至少有一个抽象控制器。
为什么不试试?至少,它已经完成了Controller - > AppController - > MyController类。
我已经在AppController和应用程序中的某些特殊控制器之间添加了一个附加层。
您遇到的唯一问题是合并$ helpers和$ components类的属性。在CakePHP中,覆盖控制器中的这些变量将会覆盖由AppController设置的那些变量,但它将合并它们,而不是而不是。
这是通过Controller基类中的一个名为__mergeVars()的特殊方法完成的,它不幸仅用于默认控制器结构。如果您希望$ helpers和$ controllers从AppController继承到您的控制器,您的附加图层将不会正确合并。
如果你的目标是在控制器之间共享的逻辑:
的逻辑添加到AppController中与应用中的所有控制器分享。
创建一个组件,并将其添加到$ this-> components中以获取要共享它的控制器。
添加控制器之间的附加继承应该只是作为最后一招,因为您必须特别注意如何处理组件和帮助程序。例如。您必须手动合并$ this-> components & $ this-> helpers与AppController和您继承的控制器。
您将遇到问题$components
和$helpers
属性不合并,而是覆盖。请务必定义protected $_mergeParent = 'YourParentClass'
以正确完成此操作。这个的默认值是'AppController'
。
的源代码: http://api.cakephp.org/2.4/source-class-Controller.html#294-301
我应该在哪里添加这个受保护的$ _mergeParent ='YourParentClass'? – Bangalore 2014-06-03 06:01:25
- 1. 继承控制器
- 2. Asp.net MVC继承控制器
- 3. 视图控制器继承
- 4. Ruby中的多重继承...继承自多个控制器类。
- 5. AngularJS中的控制器/指令继承
- 6. 将cakephp中的插件中的类继承到应用控制器
- 7. 继承父控制器中断父控制器
- 8. AngularJS:组件的控制器继承
- 9. 继承的Web API API控制器
- 10. ASP.Net MVC 3控制器的继承
- 11. 控制器继承如何实现的抽象控制器
- 12. 单控制器,多(继承)类(轨3)
- 13. 继承另一个视图控制器?
- 14. .NET MVC 2控制器继承
- 15. 测试Rails控制器继承Typus
- 16. 从宝石继承控制器类
- 17. Rails控制器继承路由错误
- 18. 轨,控制器继承W¯¯路线
- 19. 继承或共享指令控制器
- 20. 组成vs继承与控制器
- 21. 如何继承设计控制器
- 22. AngularJS控制器继承:“this”未指向子控制器
- 23. 子控制器不从父控制器继承
- 24. 示例继承Cakephp
- 25. 继承自控制与Web控制
- 26. 油漆继承控制
- 27. WPF - 反思控制继承
- 28. 从UITableViewController继承的控制器中定制uitableViewCell
- 29. CakePHP的 - 控制器
- 30. 缺少控制器CakePHP中
请更具体与您的问题,并解释你正在试图解决这个问题。 – 2008-12-11 18:12:48