【问题标题】:WordPress plugin + Composer?WordPress插件+作曲家?
【发布时间】:2015-09-11 21:46:03
【问题描述】:

我正在制作使用一些第三方库的 WordPress 插件。使用 Composer for WordPress 插件是常见的做法吗?

如果可以使用它,那么我假设我应该提供所有 Composer 文件以及我的插件,因为我不想让人手动运行composer install

另一个问题是,使用 Composer 的自动加载是否安全?我将它配置为自动加载我自己的类,当然库也会自动加载。很方便。

将 Composer 与 WordPress 插件一起使用是否会产生开销?还是有其他问题?

【问题讨论】:

  • 大多数安装 WordPress 插件的人都不知道 Composer 是什么或做什么。如果您将插件分发给普通人群,或者通过官方插件仓库,您应该在插件中包含所有依赖项。
  • 当然可以。您认为通过 Composer 将它们全部包含在内可以吗?

标签: php wordpress composer-php


【解决方案1】:

这是一个老问题,但自 3 年以来没有任何改变。使用 Composer 要求 WordPress 插件/主题中的依赖项通常是个坏主意。 PHP 不允许加载多个具有相同 FQN 的类。因此,如果两个不同的插件将独立安装同一个库,则随机安装库的类将被加载,这可能会导致非常奇怪的错误(特别是如果这些是同一个库的不同版本)。为避免此类问题,您应该每个项目只有一个 composer.json 实例,因此在这种情况下,Composer 应该在 WordPress 级别运行。

一般来说,如果你多次安装同一个包,你可能会遇到一些麻烦(如果每个插件维护者都单独使用 Composer,就会发生这种情况)。请注意,这与 Composer 没有直接关系 - 如果您手动复制库,您将遇到完全相同的问题(可能更糟)。

如果你真的想在你的插件中使用 Composer,你可以尝试像 humbug/php-scoper 这样的工具,它会修改使用的依赖项的命名空间并使其独一无二。

【讨论】:

猜你喜欢
  • 2017-12-01
  • 2015-12-25
  • 2017-03-02
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2014-01-10
相关资源
最近更新 更多