在我的插件的根文件中(the-plugin/the-plugin.php
), 我已经设置了一些定义,我将在整个插件中使用这些定义:
# Plugin\'s latest version
define( \'THEPLUIGN_VERSION\', \'2.0.0\' );
# Minimum WordPress version required
define( \'THEPLUIGN_MIN_WP\', \'3.7\' );
# Minimum PHP version required
define( \'THEPLUIGN_MIN_PHP\', \'5.3\' );
# Plugin base
define( \'THEPLUIGN_BASE\', plugin_basename( __FILE__ ) );
正如你所看到的,我在defines前面加了
THEPLUGIN_
, 我认为这是必须添加的,以保持每个值的唯一性,并防止与其他插件冲突。这是真的吗?或者有没有更好的方法在全局范围内定义这些值,以便在我的插件中使用?
我在插件中实现了名称空间和类结构。
最合适的回答,由SO网友:Mark Kaplun 整理而成
是的,更有趣的问题是,为什么要使用define而不是const
? 请看这里:define() vs const.
唯一应该使用define over的情况const
如果希望用户能够重写中的定义wp-config.php
. 显然,像最小php版本这样的东西不应该被覆盖。
一旦使用const,就可以使用名称空间来解决整个问题。唯一的问题是,PHP 5.6之前的const无法分配一个表达式,您有两个定义,它们不是简单的值。
如果您的目标是PHP 5.6及以上版本,那么在我看来,只需使用const
. 否则应该避免定义,因为它们可能会被错误地覆盖,但这是关于使用定义值而不是调用相关API的判断调用。