1

我有一个带有两个不同应用程序(前端、后端)的 symfony 应用程序,但有一个共同点。现在我在两个应用程序中都复制了它的代码,但我一点也不喜欢。

有没有办法在多个 symfony 应用程序中重用一个动作?

4

3 回答 3

6

lib最简单的方法是使用共享方法/动作创建一个动作基类。然后需要使用此功能的模块可以只扩展该基类而不是sfActions.

您也可以只使用method_not_foundsfComponent 的事件侦听器。但是,如果该方法是实际操作,则可能无法按预期工作(并且它也可以在所有模块和所有组件中使用,而无需一些特殊的检测逻辑)。

最复杂的方法是制作插件。当然,这需要使适用于任何模型的逻辑成为动态的,以便可以对其进行配置或将架构的相关部分隔离到插件的架构。

于 2011-04-30T22:33:55.610 回答
1

还有两个选择:

1) 如果您在 Linux 上,请为您的 actions.class.php 甚至整个模块创建符号链接,如果您共享相同的模板。

cd apps/backend/modules/name
ln -s ../../frontend/modules/name name

2)如果您在开发方面没有走得太远,请将您的项目重构为只有一个应用程序(我最喜欢的)。

于 2011-05-01T09:36:43.650 回答
0

如果你想共享一个模块(因此也是它的动作),正确的方法是创建一个插件。

于 2011-05-05T11:57:06.100 回答