在 wordpress 插件中使用作曲家包

Posted

技术标签:

【中文标题】在 wordpress 插件中使用作曲家包【英文标题】:using composer packages in a wordpress plugin 【发布时间】:2015-12-25 09:43:56 【问题描述】:

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

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

我正处于它在本地工作的阶段,我想将它发布到 wordpress 插件存储库。

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

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

将我的vendor 目录置于源代码管理之下,并将其签入存储库。这感觉不是一个理想的解决方案,因为我一开始就失去了使用诸如 composer 之类的包管理器的大部分意义。

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

所以我的问题是,最好的做法是什么?谁能指出我使用外部依赖项的参考 wordpress 插件?

【问题讨论】:

【参考方案1】:

您的插件看起来很有趣,很高兴看到 H5P 项目的补充已经在制作中。

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

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

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 );

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

【讨论】:

以上是关于在 wordpress 插件中使用作曲家包的主要内容,如果未能解决你的问题,请参考以下文章

如何整合视觉作曲家自定义wordpress主题

自定义 CSS 以删除 Wordpress 页面上的特定边距

我如何告诉作曲家安装最少的文件

如何在 wordpress 视觉作曲家中搜索替换图像 url

在不同的 wordpress 页面上执行可视作曲家生成的代码

如何检查是不是正在使用作曲家的自动加载器?