【问题标题】:How to set a different path for composer installer based on components inside a framework如何根据框架内的组件为作曲家安装程序设置不同的路径
【发布时间】:2016-04-08 06:16:19
【问题描述】:

我一直致力于 PHP 框架开发,我们希望将组件从核心分离到单独的包中。像这样:

vendor /
    username/frameworkname /
        core/
            Namespace /
                Core /
                    ..Framework core files here
        components/
            Namespace /
                Component
                    ComponentOne
                        ClassOne.php
                        ClassTwo.php
                        composer.json
                        LICENSE.txt
                        README.md

                    ComponentTwo
                        ClassOne.php
                        ClassTwo.php
                        ClassThree.php
                        composer.json
                        README.md
                        LICENSE.txt

                    ComponentHopeYouFotIT!

作曲家需要这样的核心:

composer require name/framework-core

并且可以安装在

vendor/username/frameworkname/src/core/Namespace/Core/

还有像这样的任何组件:

composer require name/componentname

并且可以安装在:

vendor/username/frameworkname/src/components/Namespace/Component/

这样我们就不必为任何新组件创建单独的文件夹,并且可以像这样使用:

use Namespace\Core\CoreClass;
use Namespace\Component\{
    ComponentOne\ClassTwo, 
    ComponentTwo\ClassOne
};

这可能吗?

我个人曾尝试过 Composer composer/installers,但无法在 composer.json 中找到正确的设置来解决问题。

"config": {
    "vendor-dir": "vendor/username"
},
"repositories": [
    {
        "type": "package",
        "package": {
        "name": "frameworkname/componentname",
            "version": "master",
            "source": {
                "url": "https://github.com/username/componentname",
                "type": "git",
                "reference": "master"
            }
        },
        "require": {
            "composer/installers": "~1.0"
        }
    }
],

【问题讨论】:

    标签: php path installation composer-php


    【解决方案1】:

    你看过Composer Custom Installer documentation吗?它会这样做。

    tl;dr 是您需要创建一个(非常简单的)Composer 插件来设置自定义安装位置,并且文档会非常具体地引导您完成它。

    旁白:我对@9​​87654322@ 进行了一些实验,感觉它可能不支持自定义类型,但可能允许您为支持的类型设置自定义路径。也就是说:如果您想使用 WordPress 插件,但将其安装在与正常不同的地方,您可以覆盖 install-paths,但您不一定要使用 composer/installers 来定义您自己的类型 whooptido-type 进行自定义安装地点。我极力强调,这个推论是基于今天早上试验它的经验经验,而不是实际的文档。 ;)

    【讨论】:

      猜你喜欢
      • 2018-01-22
      • 2017-10-17
      • 2015-01-23
      • 1970-01-01
      • 2013-12-22
      • 2023-04-06
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      相关资源
      最近更新 更多