use*_*368 15 php cakephp cakephp-1.3
如何在我的一个模型类中使用我在cakePHP中创建的组件?这可能吗?
如果是这样,请告诉我如何才能这样做
bur*_*zum 26
在MVC框架中,这可能是非常糟糕的做法.如果您认为需要在模型中使用该组件,则应该重新思考并重新组织代码,因为某些事情是明确错误的.
组件被认为是在控制器之间共享代码,仅在控制器之间共享.
要在模型之间共享可重用代码,这将是一种行为.对于一个观点,它将是一个帮助者.
如果你有一些非常通用的代码,它应该是一个lib或将它放在Utility文件夹/命名空间中或创建一个新的命名空间.检查那里的现有课程,以了解放在那里的内容.
没有提供代码,因此无法就如何重构代码提供任何真正的建议.但是,您希望使用现有代码的方式在MVC上下文中不起作用,因此有时间重新思考您尝试做的任何事情的方法.
小智 10
可以在模型中使用组件(但如果这是推荐的或最佳实践,我无法评论).
灵感源自原始资源,在模型中使用名为"Geocoder"的组件的示例:
App::import('Component','GeoCoder');
$gc = new GeoCoderComponent(new ComponentCollection);
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用它$gc
来调用组件的功能.
-
PS:我不想鼓励糟糕的编程实践,但有时候最后期限的压力(在现实世界的项目中)可能迫使开发人员做出这样的决定.