考虑到Composer编写了一些有用的程序,这意味着作者已经使用了其他程序的某些部分,使用Composer,它将下载这些依赖项,并进行适当的配置、命名等。
我想在我的插件中使用WordPress中的一些程序,使用require_oce()并包括程序(应用程序),这样我就可以从我的WordPress插件中使用它的功能。
如何做到这一点?
我想在我的插件中使用WordPress中的一些程序,使用require_oce()并包括程序(应用程序),这样我就可以从我的WordPress插件中使用它的功能。
这是可能的,但这是一种非常糟糕的做法。
- 你有一个插件文件夹,里面有一个正在工作的wordpress插件
- 您添加了
composer.json
并需要第三方程序包 - 您触发
composer install
,第三方包将被提取到plugin
文件夹中的文件夹vendor
中 - 在你的插件中,你包含了
vendorautoload.php
,它是Composer Autoloader。这是所有第三方插件的自动加载器 - 然后您可以开始使用第三方类(无需)
再次,关于加载:您的插件是由Wordpress加载的。但是您的插件通过包含Composer Autoloader来加载其外部依赖项。
当每个人都在插件级别上包含Composer包时,不同的Wordpress插件可能会提供相同的Composer包,对吧?好吧,让我们添加50个不同的插件,它们具有10倍的依赖性:垃圾桶里的垃圾桶。
换句话说:将Composer包直接包含在插件中是可行的,但对于Wordpress生态系统来说,这是一种非常糟糕的做法。
解决这个问题的正确方法是在应用程序级别(Wordpress)使用Composer,而不是在插件级别。这意味着Wordpress有供应商文件夹,所有插件都可能包含其中的代码,而不是多个插件可能每个都有一个供应商文件夹。
有很多不同的方法可以更集中地处理事情。我真的不知道Composer在Wordpress核心上的集成目前是什么状态。这个答案最好由Wordpress团队的一名成员给出。换句话说:在Wordpress官方支持处寻求社区指导。
- http://wpackagist.org/
- https://github.com/coenjacobs/wordpress-composer-installer
- 编写器/安装器Wordpress
让我们来看看最后一个:"Wordpress的Composer安装程序"
此安装程序处理plugin
、theme
和muplugin
包类型。看见https://github.com/composer/installers/blob/master/src/Composer/Installers/WordPressInstaller.php
这是怎么回事?您需要在插件中添加一个composer.json
,并将"wordpress插件"添加为"类型",并需要"composer-installer"作为包的依赖项。
{
"name": "my/plugin",
"type": "wordpress-plugin",
"require": {
"composer/installers": "v1.0.6"
}
}
当您运行composer install
时,Composer将获取Composer/installer并识别类型"wordpress-plugin"。然后将插件安装到wp-content/plugins/{$name}/
中。
您还可以将更多的软件包添加到"需要"部分。