【问题标题】:PHP Composer custom installerPHP Composer 自定义安装程序
【发布时间】: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


【解决方案1】:

所以对于遇到同样问题的每个人:

我的错误是我不需要主存储库中的composer/installers

必须在两个存储库中都需要作曲家安装程序。

所以在这种情况下:

{
    "type": "project",  
    "require": {
        "php": ">=5.3",
        "clancats/core": "dev-master",
        "composer/installers": "~1.0"
    },
    "config": {
        "vendor-dir": "CCF/vendor"
    },
}

解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2016-07-25
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多