在autoLoad FilePath中使用Composer $ composer_vendor_dir



我正在使用Symfony进行Dockerized应用程序。我需要将作曲家供应商目录移动,所以我确实将Environnement变量设置为$ composer_vendor_dir到/root/app-dendors。

供应商正确地找到了此目录,但与Symfony Vardump组件造成了麻烦。默认情况下,在Symfony 2中,它是从这样的作曲家加载的:

"autoload-dev": {
        "files": [
          "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
        ]
    }

在我的情况下,这条路变得错误。我想做类似的事情:

"autoload-dev": {
        "files": [
            "{$COMPOSER_VENDOR_DIR}/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
        ]
    },

,但我在作曲家文档中没有看到有关在作曲家中使用Env变量的任何内容。

我想以开发模式移动供应商,但是如果未设置$ composer_vendor_dir,我希望它们在默认位置;因此,我不能将绝对filepath放在自动加载dev部分中:

"autoload-dev": {
        "files": [
            "/root/app-vendors/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
        ]
    },

后退了几天后,一个简单的解决方案:

app/dump.php

上创建此文件
<?php
$vendorsDir = getenv('COMPOSER_VENDOR_DIR')
    ?: __DIR__.'/../vendor';
require  "$vendorsDir/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php";

然后自动加载此文件,而不是Symfony

"autoload-dev": {
        "files": [
            "app/dump.php"
        ]
    },

注意:

  • COMPOSER_VENDOR_DIR默认值为; vendor&quot,请参阅https://getcomposer.org/doc/03-cli.md#composer-vendor-dir

相关内容

  • 没有找到相关文章

最新更新