从composer安装中,我得到了比旧Zend/Libeary更新的版本,但得到了以下错误:致命错误:未捕获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-
安装屏幕。。。
这是它安装在公用文件夹下的文件夹
Vendor
Zendframework
Zend-Mvc
src
...
如何将路由器添加到配置中?下面是我安装的:
我无法清楚地理解您的查询,但如果您正在努力添加路由,则可以在模块中添加路由。配置。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',
],
],
],
],
],
//...
];
Zend Skeleton应用程序包含此编写器。json在其根项目文件夹中。您可以看到,它需要某些模块,包括一个用于安装的模块。您还可以看到自动加载
。现在,每个要加载/需要的模块都可以执行相同的操作,从而创建一个附加composer的结构。json文件和需求。在链接文件中,您会看到需要zendframework/zend mvc
(“zendframework/zend mvc”:“^3.0.1”,
)
然后看看zendframework/zend form的作曲家。json文件。您将看到添加的需要
键和版本以及附加的自动加载
键。所有这些(甚至更多)组合在一起,创建一个可安装的包。该软件包是您的完整安装,安装后,您的供应商/
映射中的所有内容都位于项目的根composer.json
文件旁边。
下面我有一个作曲家的略作修改的屏幕截图(删除了一些和问题无关的内容并突出显示了其他内容)。当前项目的json。
在左侧您可以看到文件夹结构。在底部您可以看到文件composer.json
和composer.lock
。
. json(中间屏幕)包含项目的根需求。由于每个包可能都有自己的需求,所以在安装过程中会生成composer.lock
(右侧的文件)。该文件包含每个安装的版本。(创建使用作曲家安装
命令)。
正如您在中看到的那样。锁定
文件,在某个地方需要包51systems/doctor encrypt
。正如您在这里看到的,该包有自己的需求和要加载的名称空间。
现在,Composer安装过程也会创建自动加载。
Zend Framework在应用程序本身中启动自动加载,但它使用供应商/自动加载中包含的文件。php
文件。下面是公共/索引的一部分。php
,与自动加载相关。要了解全部内容,请安装框架或查看Github。
// Composer autoloading
include __DIR__ . '/../vendor/autoload.php';
// ... other stuff
// Run the application!
Application::init($appConfig)->run();
好的,这表明我们包括供应商/自动加载。php
。让我们看看:
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit7befb6b36ba61da7e01a592b255158ab::getLoader();
六羟甲基三聚氰胺六甲醚。。。是的,这就是整个文件。不多。然而,我们也可以遵循这一点。
在vendor
文件夹中,您将找到一个名为composer
的文件夹。在这里,您将看到几个以自动加载
开头的文件,这些文件确保每个文件都通过那些编写器注册。json
文件(配置PSR-0
或PSR-4
中的键自动加载
)已加载。
因此,包括供应商/自动加载。php确实足够了。单击它们并查看。
接下来使用名称空间来使用其他类。你问了这个问题,但是考虑到这个问题的范围,你应该把它作为一个单独的问题。另外,请阅读我在评论中向您发送的名称空间链接。
下面的讨论已失控,因此请分步骤执行以下操作:
composer安装
(从“骨架”终端会话)(您想在安装过程中为所有选项“注入module.config.php
(这次不挑剔),这就是选项1
(每次))