php - 在 wordpress 插件中使用 Composer 包

标签 php wordpress plugins composer-php

我正在开发一个 wordpress 插件,该插件使用了一个 composer 包。作为引用,我正在开发的插件在这里:

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

我在本地工作的阶段,我想把它发布到wordpress插件库。

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

我看到了两种不同的处理方式:

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

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

所以我的问题是,最佳做法是什么?谁能给我指出一个使用外部依赖项的引用 wordpress 插件?

最佳答案

你的插件看起来很有趣,很高兴看到 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 );

希望这个回答对你有用。祝你的插件好运!

关于php - 在 wordpress 插件中使用 Composer 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32818084/

相关文章:

php - WordPress 在自定义管理菜单下显示分类法

php mysql 根据另一个表中的冒号值从表中选择一组列

php - 如何使用fread(或readfile)函数(PHP)获取另一个PHP页面的输出结果?

wordpress - 如何在hapyoxy配置中为特定的URL路径设置cookie

wordpress - 不安全的登录被阻止。尝试将页面重新加载为 https ://

ruby-on-rails - 如何更新通过 git 但在 svn 仓库中安装的 rails 插件?

plugins - CakePHP 2.1在主 Controller 中调用插件模型

php - 如何使用 Construction() 参数自动设置 PHP 类属性?

jQuery youtubin 插件仅适用于选择器

Wordpress 上的 Javascript 注入(inject)预防