我想開發一個php模塊系統像pypi或寶石。最大的問題是班級的多版本。php多版本的類
如果存在緩存模塊,並且被其他模塊所依賴,則更新一天緩存模塊,例如,先前版本爲0.1,現在更新爲0.2。依賴於此緩存模塊的模塊可能無法正常工作。
覆蓋此問題的一種方法是限制模塊無法更改api。只能添加新的方法或更改方法的內部工具。但它仍然可能會導致問題,例如:1.0工作正常,當更新到2.0時,導致未測試如此好,帶來一些新的錯誤。
多級版本是處理這個問題的更好的方法。但似乎很難使用沒有命名空間的php。或
class Cache1 {}
class Cache2 {}
//...
它對於模塊開發人員和用戶都不那麼方便。
有沒有什麼建議?
編輯
的情況下,數據庫和驗證模塊都依賴緩存模塊,但DB依靠緩存1.0,權威性依靠緩存2.0,原因緩存2.0添加了一些新的方法,如果他們兩個模塊並且都稱爲「類緩存」,則會出現類似「無法重新聲明類緩存」的錯誤。如果只是更新緩存到2.0,數據庫模塊可能爆發(數據庫模塊可能只需要依靠緩存1.0,因爲它只是工作)
不要暗示「微軟在它做得很好」,但是他們的WCF版本控制指示使用與您所提及的命名方案相同的接口。另外,PHP5現在有接口和命名空間(如果有幫助的話)(儘管你只能將版本5作爲目標),(可以說)你可能應該對新項目做任何事情)。 – 2011-02-22 21:01:26