Php 自定义软件包的Composer安装路径
我读过关于这个话题的其他问题,但我似乎无法让它起作用。我正试图下载一个自定义包,安装到Php 自定义软件包的Composer安装路径,php,wordpress,composer-php,Php,Wordpress,Composer Php,我读过关于这个话题的其他问题,但我似乎无法让它起作用。我正试图下载一个自定义包,安装到wp-content/plugins/cforms。我已经为wpackagist提供的其他软件包,甚至一些内部开发的定制插件提供了这个功能 以下是我所拥有的: { "name": "mycompany/wordpress-install", "description": "Themes and plugins for our wordpress install.", "authors": [
wp-content/plugins/cforms
。我已经为wpackagist
提供的其他软件包,甚至一些内部开发的定制插件提供了这个功能
以下是我所拥有的:
{
"name": "mycompany/wordpress-install",
"description": "Themes and plugins for our wordpress install.",
"authors": [
{
"name": "Me",
"email": "example@example.net"
}
],
"require": {
"deliciousdays/cforms": "14.5.2"
},
"repositories": [
{
"type": "package",
"package": {
"name": "deliciousdays/cforms",
"version": "14.5.2",
"dist": {
"url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
"type": "zip"
}
}
}
],
"extra": {
"installer-paths": {
"wp-content/plugins/cforms": ["deliciousdays/cforms"]
}
}
}
它下载cforms很好,但当我想下载时(显然)
wp-content/plugins/cforms
,它仍然将其放入vendor/deliciousdays/cforms
。我做错了什么?在尝试了很多不同的事情后,终于找到了答案。我想我遗漏了两件事:
在包声明中,我将其更改为“type”:“wordpress plugin”,然后在requires中,我必须添加“Composer/installers”:“~1.0”
,就像这样(还要注意,额外的被完全删除):
即使有composer/installers
require,我仍然无法找到如何将自定义包安装到我选择的目录中。它似乎忽略了所有内容,直到我向对象添加了一个类型,然后它强制它下载到该类型定义的位置,具体取决于如何下载
但我认为这会暂时奏效。。。如果有人知道如何把它下载到,比如说,“myfolder/something/cforms”
我会接受你的答案。碰巧我也为你找到了答案,因为我遇到了同样的问题。显然,现在对定制安装软件包的需求很大
composer/installers
仅适用于已定义的框架和CMS,但不适用于普通的composer软件包
我已经实现了这个composer插件,可以将软件包安装到用户(自定义)定义的文件夹中。您只需将其包含在composer.json中,按照下面的示例进行操作,如果您有更多问题,请告诉我:)
composer自定义目录安装程序
composer插件,用于在默认composer默认安装路径(位于供应商
文件夹中)之外的自定义目录中安装不同类型的composer软件包
这不是另一个支持非composer包类型的composer安装程序
库,即应用程序
。。等等。这只是为了增加在供应商文件夹外安装composer软件包的灵活性。此软件包仅支持composer
软件包类型
包的类型。它默认为library
包类型用于自定义安装逻辑。如果您有一个需要一些特殊逻辑的包,您可以定义一个自定义类型。这可能是一个symfony包、一个wordpress插件或一个typo3模块。这些类型都是特定于某些项目的,它们需要提供能够安装该类型软件包的安装程序
如何使用
- 将composer插件包括到您的
composer.json
require
部分:
“需要”:{
“php”:“>=5.3”,
“mnsami/composer自定义目录安装程序”:“1.1.*”,
“独白/独白”:“*”
}
- 在
extra
部分中,定义要在其中安装软件包的自定义目录:
“额外”:{
“安装程序路径”:{
“/独白/”:[“独白/独白”]
}
通过添加安装程序路径
部分,您告诉composer在根目录的monolog
文件夹中安装monolog
包
- 作为一项新增功能,我们在定义下载目录时增加了更多的灵活性,就像
编写器/安装器
一样,换句话说,您可以在安装程序路径
部分中使用{$vendor}
和{$name}
等变量:
“额外”:{
“安装程序路径”:{
“/customlibs/{$vendor}/db/{$name}”:[“条令/orm”]
}
}
以上内容将设法在项目根文件夹中的customlibs
下安装doctrine/orm
包
注
Composertype:project
在本安装程序中不受支持,因为类型为project
的软件包仅适用于另一个软件包所需的应用程序外壳,如symfony/framework standard edition
。尝试使用此Composer.json,它包括Wordpress(目前为v3.9)
它使用fancyguy/webroot安装程序安装到特定目录
此文件应位于根wordpress目录中。额外部分显示“webroot dir”为“.”;此文件将安装到当前目录中,(不要使用“/”或“/”,如果您希望将其安装到特定目录中,只需将“.”更改为要安装到的目录名
"extra": {
"webroot-dir": ".",
"webroot-package": "wordpress"
}
因此,在运行此文件后,您应该具有正常的wordpress结构,将cforms放置在wp content/plugins目录中,要安装主题,您可以复制cforms部分,并将类型更改为“wordpress theme”,将其安装到themes目录中
我绝对不是作曲家方面的专家,但我能够让它正常工作
{
"name": "mycompany/wordpress-install",
"description": "Themes and plugins for our wordpress install.",
"authors": [
{
"name": "Me",
"email": "example@example.net"
}
],
"repositories": [
{
"type": "composer",
"url": "http://wpackagist.org"
},
{
"type": "package",
"package": {
"name": "wordpress",
"type": "webroot",
"version": "3.9",
"dist": {
"type": "zip",
"url": "https://github.com/WordPress/WordPress/archive/3.9.zip"
}
}
},
{
"type": "package",
"package": {
"name": "cforms",
"type": "wordpress-plugin",
"version": "14.5.2",
"dist": {
"url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
"type": "zip"
}
}
}
],
"require": {
"php": ">=5.3.0",
"composer/installers": "~1.0",
"wordpress": "3.9",
"fancyguy/webroot-installer": "1.0.0",
"wpackagist/wordpress-seo": "*",
"cforms": "14.5.2"
},
"extra": {
"webroot-dir": ".",
"webroot-package": "wordpress"
}
}
请注意,使用wpackagist,您可以通过以下链接查看可安装插件/主题的列表:
如果您想包含Wordpress插件响应库中的插件,您可以轻松添加它们。例如,如果您想添加Yoast Wordpress SEO插件,您需要添加以下内容(请注意,您需要知道插件的slug才能添加):
我来看看这个!嗯,我还不需要这个!到目前为止,我只需要将它们定义为“类型”:“wordpress插件”
和“类型”:“wordpress主题”
。为了让它自己安装wordpress,我使用fancyguy/webroot安装程序
{
"name": "mycompany/wordpress-install",
"description": "Themes and plugins for our wordpress install.",
"authors": [
{
"name": "Me",
"email": "example@example.net"
}
],
"repositories": [
{
"type": "composer",
"url": "http://wpackagist.org"
},
{
"type": "package",
"package": {
"name": "wordpress",
"type": "webroot",
"version": "3.9",
"dist": {
"type": "zip",
"url": "https://github.com/WordPress/WordPress/archive/3.9.zip"
}
}
},
{
"type": "package",
"package": {
"name": "cforms",
"type": "wordpress-plugin",
"version": "14.5.2",
"dist": {
"url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
"type": "zip"
}
}
}
],
"require": {
"php": ">=5.3.0",
"composer/installers": "~1.0",
"wordpress": "3.9",
"fancyguy/webroot-installer": "1.0.0",
"wpackagist/wordpress-seo": "*",
"cforms": "14.5.2"
},
"extra": {
"webroot-dir": ".",
"webroot-package": "wordpress"
}
}
"require": {
"php": ">=5.3.0",
"composer/installers": "~1.0",
"wordpress": "3.9",
"fancyguy/webroot-installer": "1.0.0",
"wpackagist/wordpress-seo": "*",
"cforms": "14.5.2"
}