在插件开发中使用Composer进行依赖管理

时间:2013-12-21 作者:nonsenz

我是wordpress插件开发新手。通常我会使用composer向代码中添加第三方libs,但我在github上找不到任何使用composer的wordpress插件。

我读到了关于wpackagist的文章。org和composer可以用来管理wordpress插件之间的依赖关系的方式。在这种情况下,将有一位作曲家大师。json和所有信息。

但如果我想使用composer开发一个插件呢?我会简单地将自动加载包含在“plugin root”文件中吗?但是,如果其他插件也会这样做,并带来自己的自动加载程序,在最坏的情况下,在不同的版本中具有相同的依赖关系,该怎么办?

是否有将lib依赖项集成到wordpress插件的最佳实践?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

Composer首先开发的WP插件/主题仍然很少。你可以看看Laps case study (我的一个)作为实例。

基本上,如果您计划公开发布插件,您需要考虑这两种情况—将其作为整个site Composer堆栈的一部分运行,并单独运行。

在实践中,这通常意味着如果autoloader(和其他供应商的东西)存在于插件的目录中,则查找并有条件地加载autoloader。沿着以下路线:

if ( file_exists( __DIR__ . \'/vendor/autoload.php\' ) )
    require __DIR__ . \'/vendor/autoload.php\';
这并没有解决具有重复依赖项的多个插件的问题,然而,这并不比在没有作曲家参与的情况下发生完全相同的事情更糟糕。简单地说,WordPress没有本机依赖关系管理,因此可靠处理它的唯一方法是从外部引入它,例如使用Composer管理整个WordPress堆栈。

结束

相关推荐

Vagrantpress + composer

我在看roots.io 在博客中,我了解了Vagrant和Composer,两者的结合似乎为您提供了一个更智能的开发环境和依赖关系管理系统。我选择获取并安装Vagrantpress 因为这似乎是开始使用wordpress+vagrant最简单的方法。Vagrantpress的优点是它为您安装Wordpress及其所有依赖项。据我所知,作为Wordpress的附属品,Composer将两者结合起来的最简单方法是使用Outlandishs WordPress Packagist. 现在我的问题是,人们如何更严