2011-04-30 33 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

如果你想共享一個模塊(因此也是它的行爲),正確的方法是創建一個插件。

相關問題