在主插件文件中退出或退出违反php标准的建议

时间:2021-03-17 作者:MikeiLL

我有几个插件可以这样启动:

namespace MyPlugin;

// If this file is called directly, abort.
if (! defined(\'WPINC\')) {
    die;
}

/**
 * Define Constants
 *
 */

define(__NAMESPACE__ . \'\\NS\', __NAMESPACE__ . \'\\\\\');
现在我终于开始使用PHP_Codesniffer 实施一些PSR12 standards, 我收到一个警告:

一个文件应该声明新的符号(类、函数、常量等),并且不会产生其他副作用,或者应该执行带有副作用的逻辑,但不应该同时执行这两种作用。第一个符号在线48定义,第一个副作用在线38定义。

我注意到高级自定义字段(我认为这是一个很好的标准)也打破了这一建议:

if( ! defined( \'ABSPATH\' ) ) exit; // Exit if accessed directly
显然我可以ignore the warning, 例如,将其包装在// phpcs:disable// phpcs:enable 根据Codesniffer docs, 但是,怎样才能优雅地坚持下去呢?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

fuxia says, 遵守规则最优雅的方式就是不包含该代码。如果文件写入正确,则不要求安全。

请记住,PSR12只是一套标准,WordPress和许多插件并不遵循它。他们更有可能遵循WordPress coding standards, 我相信其中不包括这个规则(WordPress的标准有一个PHP CodeSniffer规则集可用here, 如果你想朝那个方向走)。写得相当好的WordPress代码和插件不一定会遵守PSR12,这意味着如果你遵循他们的风格,你的代码可能不会遵守PSR12。

这取决于您是否愿意严格遵循PSR12,或者使用常见的WordPress模式。在绝大多数情况下,您可以使用PSR12,您的代码看起来与WordPress生态系统中的其他代码不同。

然而,使用WordPress编码标准有一个好处,那就是那些知道WordPress功能的人,因此他们会识别一些事情,例如,你是否正确地使用WordPress自己的功能进行转义和清理。

相关推荐