自动确定插件所需的最低WordPress版本?


22

开发插件时,是否可以自动确定运行该插件所需的最低WordPress版本?我想确保Requires标头是正确的,但是每次我调用新的核心函数时都要手动检查,这既乏味又容易出错。

我认为脚本可以很容易地弄清楚:

  1. 扫描插件中的所有文件。
  2. 解析出基础上,所有的类实例化和函数的调用new foo( [...] )foo::bar( [...] )bar( [...] )call_user_func( [...] ),等语法。
  3. 使用@sincephpDoc标记解析WP源,以确定何时将这些类/函数中的每一个添加到WordPress 。
  4. 生成一份报告,列出每个类/函数及其添加的版本,以及包括所有类/函数的WordPress最早版本。

我环顾四周,却找不到类似的东西,也没有时间自己写。有人知道现有的解决方案吗?



这将是一个不错的开始,感谢您指出:)
Ian Dunn 2012年

@IanDunn如果能够找到解决方案,请分享。:)
its_me 2012年

我还没有找到解决方案。
伊恩·邓恩

2
我考虑得越多,WordPress似乎应该越多地构建它并针对存储库中的所有插件运行它,以便版本号永远对所有插件都是准确的。
mrwweb 2012年

Answers:


14

我在http://wpseek.com/pluginfilecheck/找到了作为自动化服务的解决方案

它确实做了,需要什么,包括生成使用函数列表,并提供有关Plugin-Header注释的建议。


太酷了,谢谢:)我想如果它本身是WordPress插件而不是Web服务会方便得多,但总比没有好。
伊恩·邓恩

2
不幸的是,它也是“每个文件”的-因此无法上传整个插件。但是仍然是非常有用的资源-很棒的发现!
Stephen Harris

2
该服务现在支持上传zip文件,它将自动扫描其中的所有文件:)
Ian Dunn 2014年

有什么方法可以在构建期间添加此(de.wpseek.com/pluginfilecheck)或对插件进行静态分析的另一种方法,这样我就无需再去上述站点再次检查n,构建系统将每次提交时自动生成报告以及其他静态分析。
learning_13'1

3

更新:这不再准确。参见carstenbach的答案


好吧,答案似乎是“不,没有针对此的现有解决方案。”

如果有人想写一个,这些可能会有所帮助:

我认为Mark关于将功能构建到WordPress.org存储库中的评论确实是个好主意,但在核心团队考虑添加功能之前,社区可能必须首先创建该功能,以证明其有用。


2

那么,这更是一个起点,但这个漂亮的WP功能,它们被添加/删除版本列表在这里。不幸的是,它仅上升到WP 3.0.1,但是如果您以3.0为基准进行拍摄,则至少会有所帮助-如果不在列表中,则会在以后添加。您可能想通过电子邮件发送给Ozh并要求他更新列表,并且如果我们中的一个人得到了进取心,则可以制作一个插件进行检查(例如反向弃用检查器)。

预计到达时间:Per @mrwweb- 亚当·布朗的《胡清单》!当前版本为3.3,而现在又回到了1.2.1,在他们的头脑中没有人会再运行了(发行日期2004年10月6日)。


2
我将按版本添加Adam Brown的钩子列表(回到1.2.1!),这也很适合进行检查。
mrwweb 2012年

感谢您提供了Deprecation Checker插件的链接,如果我有时间编写此代码,它可能会提供一些有用的代码。
伊恩·邓恩

这是WPSE用户Brian Fegter的出色插件。
SickHippie 2012年

0

我认为答案确实在不赞成使用的通知中-您应该使用WP_DEBUG true进行开发-是显示还是记录它们是您的电话,但是WP会在使用不赞成使用的功能时通知您。

就像您说的那样,可以解析@since,但是工具只能带您走那么远-熟悉代码库和手动检查可能是解决方法。


1
我认为您回答了问题的反面。这个问题想确定对当前支持的功能的支持程度如何(例如,您的插件使用的功能是在3.1中引入的,因此您的插件在早期版本中不起作用,但该功能不会引发错误或通知因为它现在受支持了。)
mrwweb 2012年

您是对的,为我发帖打发时间为我服务。然后,我建议手动对照上一个主要版本进行检查,并将其用作任意起点,因为鼓励用户保持其WP为最新符合每个人的最大利益。一旦确定了起点,为了保持Requires版本的更新,提交消息可能是最好的查找方式,因为应该在其中进行任何避免过时的函数和方法的重构。
克里斯·考克斯

wordpress.org/about/stats,我想说3.2是一个不错的版本,因为任何早期版本在统计上都不重要。
克里斯·考克斯

感谢克里斯的想法,但是这里的主要推动力是获得自动化的解决方案。不过,您要指出3.2之前的版本在统计上并不重要。
伊恩·邓恩

我会给您一笔交易-如果您放弃并写一份,请告诉我,如果我能写一份,请告诉您。这是一个好主意,并且将成为任何人工具箱中的有用工具。
克里斯·考克斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.