1

在我们为 ZF2 项目设置的 Zend Studio 10 中,我们将 Zend Framework 2 作为 PHP 包含路径的一部分包含在内。但是随后该项目也被设置,vendor/zendframework/zendframework/library/Zend/其中包含包含路径中的库的副本。

每次自动完成出现时,都会有两个。事实上,当我从文件夹中删除 Zend 库时,一切都会继续工作。

请记住,这是使用项目向导创建新项目时的默认设置。

有什么理由保留vendor/zendframework/zendframework/library/Zend/文件夹吗?

更新: 看起来 PHP 单元配置直接查找库文件夹而不是包含路径条目。

TestConfiguration.php.dist

define('ZF2_PATH', realpath(__DIR__ . '/../../../vendor/zendframework/zendframework/library/'));

4

1 回答 1

1

如果通过Composer进行自动加载,则认为 Composer 实际上会为每个项目下载所有依赖项的一份副本。

这已经被反复讨论过,但基本上,其原因是每个项目都被“锁定”到具有特定版本的一组特定依赖项(依赖项名称 + 版本 = 包)。

在 zf2 项目中,您不应再拥有共享库。

如果您的自动加载是通过 composer 进行的,那么您必须将该目录保存vendor/init_autoloader.php.

请考虑从 Zend Studio 中删除共享库。

此外,默认情况下,ZF2 不会在 中查找依赖项include_path,因为这样做会在 stat 调用中损失很多性能。

于 2013-02-27T15:16:45.310 回答