如何覆盖 Pimcore 插件中的控制器
Posted
技术标签:
【中文标题】如何覆盖 Pimcore 插件中的控制器【英文标题】:How to override controllers in Pimcore plugins 【发布时间】:2017-02-19 03:27:46 【问题描述】:在我的一个项目中,我安装了第三方插件。据我了解,插件是 Zend 框架意义上的常规模块(在本例中为框架版本 1.12)。
有没有办法用我自己的实现覆盖插件附带的控制器而不改变模块本身?我想到了类似“首先检查来自某个命名空间的控制器;如果它不存在,则回退到模块中的那个”。
我最终想要实现的是以“隐藏”或透明的方式扩展模块,这样我就不必更改默认路由,并且从用户的角度来看,应用程序的外观和工作方式仍然相同.
如果不可能,一般来说扩展 Pimcore 插件或 Zend 模块的最佳做法是什么?
【问题讨论】:
【参考方案1】:当覆盖插件的功能时,您应该创建自己的类并扩展插件类:https://www.pimcore.org/docs/latest/Extending_Pimcore/Parent_Class_for_Objects.html
如果需要,您可以使用 DI https://www.pimcore.org/docs/latest/Extending_Pimcore/Dependency_Injection.html 始终实例化您的重写类,该类可以/应该扩展或使用然后返回原始类。
【讨论】:
始终欢迎提供潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted? 的一个可能原因。 感谢您的提示。我已经相应地更新了我的答案。以上是关于如何覆盖 Pimcore 插件中的控制器的主要内容,如果未能解决你的问题,请参考以下文章