我想在一个库的dev部分中使用一个有用的类,我想在第二个库的dev部分中使用它,而无需将该类复制过来。
如果我执行composer require --dev my/library
,则会将整个库移至dev部分,从而使实时代码无法使用它。
我能够做到这一点的唯一方法是手动编辑autoload-dev
中的composer.json
部分,以将该类指向正确的vendor
目录。这行得通,但感觉做错了方法。
是否存在建议的方法来告诉Composer将一个Composer库中的开发类提供给其他Composer开发类?
答案 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文件夹内可能会起作用,但是我认为这是一个糟糕的技巧,而不是解决方案。如果您在该库中重命名文件夹,它将中断。