2011-04-30 34 views
1

我有一个symfony应用程序,它有两个不同的应用程序(前端,后端),但有一个共同的操作。现在我已经在两个应用程序中都复制了它的代码,但我根本不喜欢它。一个动作在多个应用程序中重复使用

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

回答

6

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

你也可以在sfComponent的method_not_found上使用事件监听器。但是,如果该方法是实际操作(并且在所有模块和所有组件中没有特定检测逻辑的情况下都可用),则这可能无法按预期工作。

最复杂的方法是做一个插件。当然,这需要制定适用于任何模型的逻辑,使其能够动态配置,以便将模式的相关部分配置或隔离到插件的模式。

+0

+1首先! – Dziamid 2011-05-01 09:30:56

1

两个更多的选择:

1)如果您是在Linux上,做一个符号链接到您的actions.class.php甚至整个模块,如果共享相同的模板。 2)如果您在开发过程中没有做过多的工作,请重新考虑您的项目只有一个应用程序(我的最爱)。

+0

#2的+1有一定的优点,原因有几个......#1看起来像kludge虽然:-) – prodigitalson 2011-05-01 14:44:01

+0

是的,如果我必须从头开始,我可能只有一个应用程序... – miguelSantirso 2011-05-02 13:00:29

0

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

相关问题