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