我需要在Symfony 2应用程序中自动加载两个供应商目录。我将首先解释为什么我需要这个,使一切更清楚:
我有许多用Symfony 2编写的小项目/网站,所有的symlinks
和shared library
都提供了领域模型等
其中一个项目的应用程序结构:
|- app
|- library -> ../library (symlink)
|- src
|- vendor
|- web
library
项目有许多重要的供应商(doctrine等),所以我不能在每个项目的vendors
目录中安装library
的供应商。这将占用大量磁盘空间。
我是否需要merge
两个供应商([root]/vendors
和[root]/library/vendors
),以便它们都是自动加载的,但不复制?如果我这样做,我的作曲家。我猜lock会失败,因为供应商位于不同的目录。
如何在Composer中做到这一点?有什么建议吗,我已经无计可施了。
谢谢!
Symfony 2 app/autolload .php文件可以用来添加额外的目录来加载。
/**
* @var $loader ClassLoader
*/
// The Composer generated autoloader
$loader = require __DIR__.'/../vendor/autoload.php';
// An additional directory to load from
$loader->add('Cerad', __DIR__ . '/../../cerad2/src');
// Majic
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;