2012-11-10 106 views
1

我明白這個問題可能是模糊的,我會盡我所能解釋我的問題,並希望能夠從經驗豐富的人那裏得到很多見解,並希望這不會被封閉。我應該如何構建我的應用程序?

我正在編寫一個基於Symfony 2的組件和包的PHP web應用程序框架,但是我的問題可能與此無關。該框架旨在對第三方插件開放,這些插件將擁有自己的配置文件(yaml),安裝這些插件的人應該能夠在本地覆蓋這些設置

我也有,以確保每個人進行插件升級操作時,它應該很容易遍歷的「升級補丁」,同時仍然保留本地設置升級插件的設置列表。

我想我可以有哪些存儲這樣的地方,應用的具體plugins.yml文件:

pluginA: 
    somesettings: value 
    somesettings2: value2 

這個應用程序的特定設置文件將允許用戶覆蓋任何默認設置。然後,每個插件可以包含一個「升級」類,它將包含每個版本的所有修補程序,框架將識別當前安裝的路徑,並將遍歷每個「升級修補程序」並執行操作,直到它達到最新版本。

這聽起來像一個很好的選擇,或者如果有什麼我應該看看?我如何能夠輕鬆升級可覆蓋的配置設置?如果您需要更多詳細信息,請告訴我。

回答

1

在我看來,你正在尋找的東西,實際上核心Symfony允許做 - 我。即讓其他用戶覆蓋/實現已經存在的包的自定義部分。 如果是的話,也許這個答案可以就如何實現這一目標使用ClassLoader組件(Symfony的2.0)或作曲一個好主意(Symfony的2.1):

How can I override Core Symfony2 Classes?

相關問題