我有一个symfony应用程序,它有两个不同的应用程序(前端,后端),但有一个共同的操作。现在我已经在两个应用程序中都复制了它的代码,但我根本不喜欢它。一个动作在多个应用程序中重复使用
有没有办法在多个symfony应用程序中重用一个动作?
我有一个symfony应用程序,它有两个不同的应用程序(前端,后端),但有一个共同的操作。现在我已经在两个应用程序中都复制了它的代码,但我根本不喜欢它。一个动作在多个应用程序中重复使用
有没有办法在多个symfony应用程序中重用一个动作?
最简单的方法是使用共享的方法/动作在lib
中创建一个动作基类。然后,需要使用此功能的模块可以扩展该基类而不是sfActions
。
你也可以在sfComponent的method_not_found
上使用事件监听器。但是,如果该方法是实际操作(并且在所有模块和所有组件中没有特定检测逻辑的情况下都可用),则这可能无法按预期工作。
最复杂的方法是做一个插件。当然,这需要制定适用于任何模型的逻辑,使其能够动态配置,以便将模式的相关部分配置或隔离到插件的模式。
两个更多的选择:
1)如果您是在Linux上,做一个符号链接到您的actions.class.php甚至整个模块,如果共享相同的模板。 2)如果您在开发过程中没有做过多的工作,请重新考虑您的项目只有一个应用程序(我的最爱)。
#2的+1有一定的优点,原因有几个......#1看起来像kludge虽然:-) – prodigitalson 2011-05-01 14:44:01
是的,如果我必须从头开始,我可能只有一个应用程序... – miguelSantirso 2011-05-02 13:00:29
如果你想共享一个模块(因此也是它的行为),正确的方法是创建一个插件。
+1首先! – Dziamid 2011-05-01 09:30:56