【发布时间】:2014-05-24 17:07:09
【问题描述】:
我现在试图解决这个问题很长时间,但仍然无法弄清楚我的错误是什么。
我有两个想要合并的存储库。应用程序和框架核心。
// Application
- composer.json
- public/
- CCF/
- core/ <- here the core package should go
- vendor/ <- here it goes instead
现在基本上我想创建一个作曲家包,安装到CCF/core/ 而不是CCF/vendor/clancats/core/etc..
所以我在以下位置创建了一个自定义安装程序:
vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php
class ClanCatsFrameworkInstaller extends BaseInstaller
{
protected $locations = array(
'core' => 'CCF/core/',
'orbit' => 'CCF/orbit/{$name}/',
);
}
核心的composer.json
{
"name": "clancats/core",
"description": "The ClanCatsFramework Core repository",
"type": "clancatsframework-core",
"license": "MIT",
"require": {
"php": ">=5.3",
"composer/installers": "~1.0"
}
}
应该在 CCF/core 实现核心的应用程序的composer.json
{
"type": "project",
"require": {
"php": ">=5.3",
"clancats/core": "dev-master"
},
"config": {
"vendor-dir": "CCF/vendor"
},
}
但毕竟作曲家仍然将核心包安装在 /vendor/clancats/etc..
所以我的问题是 composer 不会将核心包安装到 CCF/core/ 的错误是什么?
- 为需求添加了作曲家/安装程序。
- 我创建了一个自定义安装程序,它定义了核心路径
- 将核心包的类型设置为我自定义的。
另一个问题在我脑海中盘旋,我的模式错了吗?我的意思是我误解了如何使用作曲家?
Github:
感谢你们的帮助:)
【问题讨论】:
-
请添加以下内容:描述您正在尝试做什么,您期望结果是什么,以及您得到了什么(如果不明显,期望和期望之间有什么区别现实困扰着你)。这些是获得帮助所需的基本信息 - 就目前而言,您只是在说明您正在做某事,并且您需要帮助,但您至少没有问过一个问题。
-
@Sven 感谢您的回复。我更新了这个问题,希望现在更清楚我的要求。
-
伟大的更新!现在任何人都可以提供帮助。你甚至可以从我这里得到一些分数。 :)
-
为什么不能将它们留在供应商目录中?
-
@PatrickForget 我能做到的核心,我已经做到了。但至少轨道包 'CCF/orbit/{$name}/' 应该有自己的安装目录。
标签: php json composer-php