我第一次尝试使用CakePHP与作曲家,但我有一些问题。
我有composer.json
:
{
"name": "example.com.br",
"repositories": [
{
"type": "pear",
"url": "http://pear.cakephp.org"
}
],
"config": {
"vendor-dir": "Vendor/"
},
"require": {
"php": ">=5.4",
"pear-cakephp/cakephp": ">=2.4.3",
"cakephp/debug_kit": "2.2.*",
"smottt/wideimage": "dev-master"
},
"extra": {
"installer-paths": {
"app/Plugin/DebugKit": ["cakephp/debug_kit"],
"app/Vendor/Wideimage": ["smottt/wideimage"]
}
}
}
当我运行composer install (or update) --prefer-dist
时,除了smottt/wideimage
之外,一切正常。
此软件包安装在/Vendor
文件夹而不是/app/Vendor
,因此忽略了 installer-paths 。
答案 0 :(得分:14)
当然,Danack has said是真的: composer-installers 插件只支持选择的包类型列表。
作为回应,我为 composer-installers 插件编写了an extension,它允许"installer-paths"
指令处理任意包类型。
在composer.json中只需要oomphinc/composer-installers-extender
并添加对任何其他任意包类型的支持:
"extra": {
"installer-types": ["library"],
"installer-paths": {
"special/package/": ["my/package"],
"path/to/libraries/{$name}/": ["type:library"]
}
}
对于未指定类型的包,请使用默认类型library
。
答案 1 :(得分:8)
您不能使用它来更改任何包的路径。这只是 适用于需要编写器/安装程序并使用a的程序包 它处理的自定义类型。
您正在安装的packages之一:
{
"name": "smottt/wideimage",
"description": "An open-source PHP library for image manipulation. (With namespaces, PHP 5.3+)",
"homepage": "http://wideimage.sourceforge.net",
"type": "library",
"license": ["GPL-2.0","LGPL-2.1"],
"version": "11.02.19",
"autoload": {
"psr-0" : {
"WideImage" : "lib/"
}
}
}
因此,您尝试安装的软件包基本上不支持自定义安装路径。
答案 2 :(得分:4)
使用作曲家的“脚本”选项(仅适用于linux):
"scripts": {
"post-install-cmd": [
"php -r \"system('mv '.getcwd().'/Vendor/smottt/wideimage '.getcwd().'/Vendor/Wideimage');\""
]
}
答案 3 :(得分:0)
将您的自定义类型添加到 return;
:
installer-types
https://packagist.org/packages/oomphinc/composer-installers-extender