Php Zend项目架构

Php Zend项目架构,php,zend-framework,composer-php,zend-framework-mvc,zend-framework3,Php,Zend Framework,Composer Php,Zend Framework Mvc,Zend Framework3,我目前正在为一个项目(或一系列项目)使用Zend 3。为了避免每个项目都有多个vendor文件夹,我希望每个项目都从根级别运行一个vendor文件夹 在我的应用程序/public/index.php文件中,我更改了这一行: include __DIR__ . '/../vendor/autoload.php'; 为此: include __DIR__ . '/../../shared/vendor/autoload.php'; 当我这样做时,我看到了这个错误: 致命错误:无法初始化带有消息模

我目前正在为一个项目(或一系列项目)使用Zend 3。为了避免每个项目都有多个
vendor
文件夹,我希望每个项目都从根级别运行一个
vendor
文件夹

在我的应用程序
/public/index.php
文件中,我更改了这一行:

include __DIR__ . '/../vendor/autoload.php';
为此:

include __DIR__ . '/../../shared/vendor/autoload.php';
当我这样做时,我看到了这个错误:

致命错误:无法初始化带有消息模块(应用程序)的未捕获异常“Zend\ModuleManager\exception\RuntimeException”。在C:\Users\b28934\Documents\server\UwAmp\www\zf3\app\vendor\zendframework\zend modulemanager\src\modulemanager.php的第203行中”

有什么建议吗?我的
composer.json
文件中缺少什么吗

  • 首先,所有项目都不需要只有一个
    供应商
    文件夹。现在驱动器空间很便宜。我看绝对没有理由
  • 根据设计,每个composer项目都有自己的
    vendor
    文件夹,因为如果有两个项目需要相同的包,但版本不同,那么它就会失败
  • 我建议保持简单。保持它像聪明人设计的一样。不要无缘无故地把它搞砸

  • 首先,所有项目都不需要只有一个
    供应商
    文件夹。现在驱动器空间很便宜。我看绝对没有理由
  • 根据设计,每个composer项目都有自己的
    vendor
    文件夹,因为如果有两个项目需要相同的包,但版本不同,那么它就会失败

  • 我建议保持简单。保持它像聪明人设计的一样。不要无缘无故地把它搞砸。

    关于你的第一点,内存不是问题。我希望使用由一个composer.json文件管理的同一个供应商文件夹,该文件夹将被所有四个web应用程序使用。在这种情况下,我将引入一个新模块/p通过composer打包,而不是更新每个网站供应商文件夹(通过composer一次更新一个),更新一个composer.json文件和一个vendor文件夹是有意义的,并让它在所有其他web应用程序中传播。不。项目1中需要package
    foo/A
    ,项目2中需要package
    foo/B
    。如果
    foo/A
    取决于
    foo/C
    版本1,那么
    foo/B
    取决于
    foo/C
    version 2然后一切都乱七八糟。我见过一些人的想法和你一样,每次这些人都以一个乱七八糟的设置结束,需要返回到一个项目一个
    vendor
    文件夹原理。这是一个精心设计的机制。复制
    composer.json
    并运行更新更容易每一个项目,并保持它们的独立性。如果出现任何问题,您可以将它们保留在不同的依赖项上。关于您的第一点,内存不是问题。我希望使用由一个composer.json文件管理的同一个供应商文件夹,这将被所有四个web应用程序使用。在这种情况下,我将引入一个新的模块/包通过composer,而不是更新每个网站的供应商文件夹(通过composer一次更新一个),更新一个composer.json文件和一个vendor文件夹是有意义的,并让它在所有其他web应用程序中传播。不。项目1中需要package
    foo/A
    ,项目2中需要package
    foo/B
    。如果
    foo/A
    取决于
    foo/C
    版本1,那么
    foo/B
    取决于
    foo/C
    version 2然后一切都乱七八糟。我见过一些人的想法和你一样,每次这些人都以一个乱七八糟的设置结束,需要返回到一个项目一个
    vendor
    文件夹原理。这是一个精心设计的机制。复制
    composer.json
    并运行更新更容易每一个项目,并保持他们的独立性。在任何问题的情况下,你可以保持他们在不同的依赖关系。