如何将软件包安装到自定义路径的框架中



我正在使用作曲家版本1.0-dev

我阅读https://getComposer.org/doc/faqs/how-do-i-i-in-install-a-package-to-a-custom-path-path-path-for-my-framework.md and https://https://https://github.com/composer/installershave

我在Bitbucket中有一个自定义模块,带有这个简单的Composer.json:

{
    "name": "mybitbucketuser/base",
    "type": "puppet-module",
    "require": {
        "composer/installers": "~1.0"
    }
}

在我的主要项目中,我有这个作曲家:

{
    "minimum-stability": "stable",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://bitbucket.org/mybitbucketuser/fluzu-base.git"
        }
    ],
    "require": {
        "mybitbucketuser/base": "*"
    },
    "extra": {
        "installer-paths": {
            "modules/{$name}/": ["mybitbucketuser/base"]
        }
    }
}

我也尝试过:

"extra": {
    "installer-paths": {
        "modules/{$name}/": ["type:puppet-module"]
    }
}

所有人似乎都可以正常工作,但是作曲家在默认的供应商中安装模块 dir而不是模块中的dir dir。

怎么了?谢谢。

顺便说一句,我正在使用type puppet模块,但实际上是一个phalcon模块。

我刚刚进行了测试,它起作用。这是一个简单的示例,其中hello-world是一个软件包,hello-world-test需要该软件包。

文件夹结构

/
  hello-world/
    src/
      HelloWorld/
        SayHello.php
    composer.json
  hello-world-test/
    composer.json

/hello-world/src/helloworld/sayhello.php

<?php 
namespace HelloWorld;
class SayHello
{
    public static function world()
    {
        return 'Hello World, Composer!';
    }
}

/hello-world/composer.json

{
    "name": "me/hello-world",
    "type": "puppet-module",
    "require": {
        "composer/installers": "~1.0"
    },
    "autoload": {
        "psr-0": {
            "HelloWorld": "src/"
        }
    }
}

然后我跑了

cd hello-world
git init
git add *
git commit -m "Initial commit"
git tag -a 1.0.0 -m "first stable version"

注意:作曲家期望在此处设置git存储库,并在将minimum-stability设置为稳定时也有一个版本标签。如果将minimum-stability设置为dev

,我们可以省略标签

/hello-world-test/composer.json

{
    "minimum-stability": "stable",
    "repositories": [
        {
            "type": "vcs",
            "url": "../hello-world"
        }
    ],
    "require": {
        "me/hello-world": "*"
    }
}

然后我跑了

cd hello-world-test
composer install

作曲家现在自动为composer/installers创建了vendor文件夹和我们的hello-world软件包的modules文件夹。modules文件夹是由于包装中的"type": "puppet-module"而创建的。

作曲家软件包自定义安装程序插件,这将满足您的需求。只需将其分配,并在SRC/Installer CPCInstaller下的Config Directory中添加您的说明,将为您做所有事情。

相关内容

  • 没有找到相关文章

最新更新