可以将一个Composer库中的开发类用于另一个Composer库中的开发类吗?

时间:2019-09-28 01:53:09

标签: composer-php

我想在一个库的dev部分中使用一个有用的类,我想在第二个库的dev部分中使用它,而无需将该类复制过来。

如果我执行composer require --dev my/library,则会将整个库移至dev部分,从而使实时代码无法使用它。

我能够做到这一点的唯一方法是手动编辑autoload-dev中的composer.json部分,以将该类指向正确的vendor目录。这行得通,但感觉做错了方法。

是否存在建议的方法来告诉Composer将一个Composer库中的开发类提供给其他Composer开发类?

2 个答案:

答案 0 :(得分:0)

遗憾的是,没有一种干净的方法。

唯一的方法就是您提到的方法。指向autoload-dev文件composer.json部分中的vendor文件夹,例如:

"autoload-dev": {
    "psr-4": {
        "Other\\Library\\Tests\\": "vendor/other/library/tests"
    }
},

答案 1 :(得分:0)

如果在另一个软件包中使用了软件包,则Composer中的任何“ dev”都将被忽略。

如果您的一个库中有一个有用的类并且想要使用它,则必须将其公开为“生产”代码,而不是“开发”代码,包括非开发自动加载功能。

您应该能够创建另一个仅包含有用的dev类的库,然后-> php bin/console doctrine:database:create In AbstractMySQLDriver.php line 106: An exception occurred in driver: could not find driver In PDOConnection.php line 31: could not find driver In PDOConnection.php line 27: could not find driver 在其他任何地方使用该库。

将自动装带器指向vendor文件夹内可能会起作用,但是我认为这是一个糟糕的技巧,而不是解决方案。如果您在该库中重命名文件夹,它将中断。