在composer Install中,我获得了比旧Zend/Libeary更新的版本,但得到了这样的错误:a error: Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException:无法将服务“路由器”解析到工厂;您确定是在配置过程中提供的吗?在/home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:687堆栈跟踪中:#0 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(763):Zend\ServiceManager\ServiceManager->getFactory('Router') #1 /home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(200):Zend\ServiceManager\ServiceManager->doCreate('Router') #2 //home/azureuser/nginad/upload/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:687/azureuser/nginad/upload/vendor/zendframework/zend-mvc/src/Application.php(158):Zend\ServiceManager\ServiceManager->get('Router') #3 /home/azureuser/nginad/upload/vendor/zendframework/zend-mvc/src/Application.php(273):Zend\Mvc\应用程序->bootstrap(数组) #4 /home/azureuser/nginad/upload/public/index.php(28):Zend\Mvc\应用程序::init(数组) #5 {main}在//home/azureuser/nginad/upload/public/index.php(28):/azureuser/nginad/upload/upload/vendor/zendframework/zend-mvc/src/Application.php(158):Zend\ServiceManager\ServiceManager->get(‘Router’)中抛出687行上的/zendframework/zend-servicemanager/src/ServiceManager.php
下面是安装在public目录下的文件夹
Vendor
Zendframework
Zend-Mvc
src
...如何将路由器添加到配置中?下面是我安装的内容:
发布于 2018-06-29 15:02:37
我不能清楚地理解您的查询,但是如果您正在努力添加路径,那么您可以像下面这样在module.config.php中添加您的路径
<?php
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
return [
'router' => [
'routes' => [
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
'application' => [
'type' => Segment::class,
'options' => [
'route' => '/application[/:action]',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
],
],
//...
];发布于 2018-07-28 08:14:34
Zend Skeleton Application在其根项目文件夹中包含this composer.json。您可以在那里看到它需要某些模块,包括一个用于安装的模块。您还可以看到autoload。现在,每个要加载/所需的模块都可以执行相同的操作,从而创建附加composer.json文件和需求的结构。在链接文件中,您会看到zendframework/zend-mvc是必需的("zendframework/zend-mvc": "^3.0.1",)
然后看看zendframework/zend-form的composer.json文件。你会看到添加了require密钥和版本,以及一个额外的autoload密钥。所有这些(甚至更多)被混合在一起,创建了一个可安装的软件包。这个软件包就是你的完整安装,安装后,你的项目中vendor/地图中的所有东西(在项目的根composer.json文件旁边)。
下面我得到了一个当前项目的composer.json的略微修改的屏幕截图(删除了一些与问题无关的东西,并突出显示了其他东西)。
在左侧,您可以看到文件夹结构。在底部,您可以看到文件composer.json和composer.lock。
.json (中间屏幕)包含项目的根需求。由于每个软件包可能都有自己的要求,因此composer.lock是在安装过程中生成的(右侧的文件)。该文件包含所有已安装的版本。(使用composer install命令创建)。
正如您在.lock文件中看到的,包51systems/doctrine-encrypt在某个地方是必需的。正如您还可以在那里看到的,该包有自己的要求和要加载的名称空间。

现在,Composer安装过程还会创建您的自动加载。
Zend Framework开始在应用程序本身中自动加载,但它使用vendor/autoload.php文件中包含的文件。下面是public/index.php中的一小段代码,与自动加载相关。要了解完整的内容,请安装框架或在Github上查看。
// Composer autoloading
include __DIR__ . '/../vendor/autoload.php';
// ... other stuff
// Run the application!
Application::init($appConfig)->run();好的,这表明我们包括了vendor/autoload.php。让我们看看:
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit7befb6b36ba61da7e01a592b255158ab::getLoader();嗯..。是的,这就是整个文件。不是很多。但是,我们也可以遵循这一点。
在vendor文件夹中,您将找到一个名为composer的文件夹。这里你将看到几个从autoload_开始的文件,这些文件确保通过这些composer.json文件注册的每个文件(配置PSR-0或key autoload中的PSR-4 )都会被加载。
所以,包括vendor/autoload.php就足够了。单击它们并查看。
接下来,您将使用名称空间来使用其他类。你问过这个问题,但考虑到这个问题的范围,你应该把它作为一个单独的问题。另外,请阅读带有我在评论中发送给您的链接的名称空间。
下面对的讨论已经失控,因此请逐步执行以下操作:
composer install (from“maybe”Terminal session) (你想在安装过程中为所有选项注入module.config.php (这次不挑剔),那是option 1 (每次))

https://stackoverflow.com/questions/51094786
复制相似问题