在 WordPress 插件中使用 Composer 包

Mik*_*ist 5 php wordpress plugins composer-php

我正在开发一个 WordPress 插件,该插件使用了 Composer 包。作为参考,我正在开发的插件在这里:

https://github.com/tunapanda/wp-h5p-xapi

我正处于本地运行的阶段,我想将其发布到 wordpress 插件存储库。

为了使用该插件,我需要composer install在插件目录中运行以安装 Composer 包。我的问题是,它如何与插件存储库一起使用以及让它工作的最佳实践是什么?因为显然,如果我只是将插件发布到存储库,并且如果有人从那里安装它,它将无法工作,因为那时作为依赖项的作曲家包将不会被安装。

我看到两种不同的方法来处理这个问题:

  • 将我的vendor目录置于源代码管理之下并将其签入存储库。这感觉不是一个理想的解决方案,因为我首先会失去使用包管理器(例如 Composer)的大部分意义。

  • 避免一起使用 Composer,而只需获取我需要的包的代码并将其置于源代码控制之下。

所以我的问题是,最佳实践是什么?谁能给我指一个使用外部依赖项的参考 WordPress 插件?

小智 4

你的插件看起来非常有趣,很高兴看到H5P项目的补充已经完成。

至于你的问题,我不确定是否有最佳实践或最佳方法来做到这一点。据我所知,最常见的做法是在插件中包含第 3 方库,或者需要一个已经包含该库的插件。当然,一个问题是它是否是您需要的版本。

如果您决定这样做,我建议您在加载插件后将其包含在内,并且在包含它之前进行一些检查,例如

function load_my_library() {
  if ( !class_exists( 'MyLibraryClass' ) ) {
    require_once( plugin_dir_path(__FILE__) . 'my-library/class.php' );
  }
}
add_action( 'plugins_loaded', 'load_my_library', 0 );
Run Code Online (Sandbox Code Playgroud)

我希望这个答案对你有一些用处。祝你的插件好运!