0
我已經創建了幾個使用普通類的WordPress插件。插件應該單獨工作,理想情況下不需要將普通類作爲單獨的插件安裝,但也可以在同一安裝中激活它們。現在,我可以通過執行class_exists檢查來防止多次加載類,但我希望能夠更多地控制正在使用哪個版本的類,最好是最新版本。這是因爲用戶可能不更新其中一個插件,而且它可能正是使用的通用類的版本。有沒有辦法進行這種檢查?選擇一個類的最新版本
我想避免這種情況發生:
- 用戶安裝了2個不同的插件:WPFoo & WPBar,它們都使用MyClass的。
- 用戶擁有WPBar的最新版本,但WordPress加載了舊版本的MyClass,包含在WPFoo中,即使他已經在WPBar中具有最新版本的MyClass。
- 理想情況下,用戶不必擔心這一點,因爲他已經擁有最新版本。
我想以下情景:
- 定義一個全局變量中的類版本將被存儲($ myclassversion)
- WordPress的加載普通類第一次出現的&存儲其版本
- WordPress擊中了普通班的第二次出現。在加載類之前,會執行class_exists檢查,並將$ myclassversion與此類版本進行比較。當這個級別的版本更高時,舊的級別未設置,並加載新的級別。
但是,afaik你不能通過簡單地定義它來重置/重寫一個類,對吧?
一些額外的信息: 的類已經分裂成不同的文件。我曾想過爲每個插件命名類,但最終它們會修改相同的內容,並且當它們一個接一個地插入時(如果版本不同,每個插入方式略有不同)會變得混亂。
這樣至少可以防止使用「過時」版本,但用戶不太清楚他/她應該爲此更新另一個插件。我可以添加另一個'常量PLUGIN ='該插件'並在錯誤消息中使用該變量,但我寧願選擇該類的最新版本(該插件將包含該插件,因爲較舊插件會有更高的優先級)。 – Ewout
@Ewout絕對。即使您可以將用戶重定向到包含最新版插件的下載頁面。所以你應該在插件的中心類中定位你的插件版本信息,或者你可以將它定義爲插入到你的插件源的全局常量。 – Ihsan