Composer:两个供应商目录(其中一个是符号链接的) - 共享库自动加载

时间:2014-06-22 20:13:56

标签: php symfony composer-php autoloader

我需要在Symfony 2应用程序中自动加载两个供应商目录。我将首先解释为什么我需要这个,以使一切更清楚:

我有许多用Symfony 2编写的小项目/网站,所有symlinks一个shared library提供域名模型等。

其中一个项目应用程序结构:

|- app
|- library -> ../library (symlink)
|- src
|- vendor
|- web

library项目有许多重要的供应商(学说等),因此我无法在每个项目library目录中安装vendors的供应商。这将占用大量磁盘空间。

我是否需要merge两个供应商([root]/vendors[root]/library/vendors),以便它们全部自动加载但不会被复制?如果我这样做,我的composer.lock会失败,因为供应商住在不同的目录。

如何使用Composer完成此操作?任何提示,我都没有想法。

谢谢!

1 个答案:

答案 0 :(得分:0)

Symfony 2 app / autoload.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;