我有一个带有两个不同应用程序(前端、后端)的 symfony 应用程序,但有一个共同点。现在我在两个应用程序中都复制了它的代码,但我一点也不喜欢。
有没有办法在多个 symfony 应用程序中重用一个动作?
我有一个带有两个不同应用程序(前端、后端)的 symfony 应用程序,但有一个共同点。现在我在两个应用程序中都复制了它的代码,但我一点也不喜欢。
有没有办法在多个 symfony 应用程序中重用一个动作?
lib
最简单的方法是使用共享方法/动作创建一个动作基类。然后需要使用此功能的模块可以只扩展该基类而不是sfActions
.
您也可以只使用method_not_found
sfComponent 的事件侦听器。但是,如果该方法是实际操作,则可能无法按预期工作(并且它也可以在所有模块和所有组件中使用,而无需一些特殊的检测逻辑)。
最复杂的方法是制作插件。当然,这需要使适用于任何模型的逻辑成为动态的,以便可以对其进行配置或将架构的相关部分隔离到插件的架构。
还有两个选择:
1) 如果您在 Linux 上,请为您的 actions.class.php 甚至整个模块创建符号链接,如果您共享相同的模板。
cd apps/backend/modules/name
ln -s ../../frontend/modules/name name
2)如果您在开发方面没有走得太远,请将您的项目重构为只有一个应用程序(我最喜欢的)。
如果你想共享一个模块(因此也是它的动作),正确的方法是创建一个插件。