自定义包的 Composer 安装路径

nzi*_*nab 5 php wordpress composer-php

我已经阅读了有关此主题的其他问题,但我似乎无法让它发挥作用。我正在尝试下载cforms作为要安装到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"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它下载 cforms 很好,但是vendor/deliciousdays/cforms当我想要它时它仍然把它放入(显然) wp-content/plugins/cforms。我究竟做错了什么?

nzi*_*nab 3

在尝试了很多不同的事情后终于弄清楚了。我想我错过了两件事:

在包声明中,我将其更改为具有"type": "wordpress-plugin",然后在需求中我必须"composers/installers": "~1.0"像这样添加(另请注意,已extra完全删除):

{
  "name": "mycompany/wordpress-install",
  "description": "Themes and plugins for our wordpress install.",
  "authors": [
    {
        "name": "Me",
        "email": "example@example.net"
    }
  ],
  "require": {
    "composer/installers": "~1.0.0",
    "deliciousdays/cforms": "14.5.2"
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "deliciousdays/cforms",
        "version": "14.5.2",
        "type": "wordpress-plugin",
        "dist": {
          "url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
          "type": "zip"
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

即使其中有要求,我仍然无法弄清楚如何将自定义包安装到我选择的目录中。composer/installers它似乎忽略了一切,直到我向对象添加了一个类型,然后它根据决定如何composer/installers映射它,强制它下载到该类型定义的位置。

但我认为这现在会起作用......如果有人知道如何将其下载到,比如说,"myfolder/something/cforms"我会接受你的答案。