我正在制作使用一些第三方库的WordPress插件。使用Composer for WordPress插件是否常见?
如果可以使用它,那么我认为我应该提供所有Composer文件以及我的插件,因为我不想让人们手动运行composer install
。
另一个问题是,使用Composer的自动加载是否安全?我将它配置为自动加载我自己的类,库当然也是自动加载的。这很方便。
使用带有WordPress插件的Composer是一种开销吗?或者它还有其他问题吗?
答案 0 :(得分:1)
这是一个古老的问题,但是三年以来没有任何变化。使用Composer要求WordPress插件/主题中的依赖项通常不是一个好主意。 PHP不允许使用相同的FQN加载多个类。因此,如果两个不同的插件将独立安装相同的库,则会从随机安装的库中加载类,这可能会导致真正奇怪的错误(特别是如果这些是同一库的不同版本)。为避免此类问题,每个项目应该只有一个composer.json
实例,因此在这种情况下,Composer应该在WordPress级别运行。
通常,如果您多次安装相同的软件包,则可能会遇到一些麻烦(如果每个插件维护者都单独使用Composer,则会发生这种情况)。请注意,这与Composer并不直接相关-如果您手动复制库,则会遇到完全相同的问题(甚至更糟)。
如果您确实想在插件中使用Composer,则可以尝试使用humbug/php-scoper
之类的工具,该工具将修改已使用依赖项的名称空间并使它们唯一。