问题标签 [zend-servicemanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1820 浏览

zend-framework2 - Zend Di vs ServiceManager 依赖注入容器

DI当我们有的时候,它的用途和用例是什么ServiceManager

它们看起来很相似,因为在两者的配置文件中zend-dizend-servicemanager我们可以设置一些选项,例如aliasesinvokables

我试图更好地了解这些组件在幕后发生的事情,但文档没有给我足够的信息。

你能告诉我有什么区别,什么时候应该使用Di而不是ServiceManager

0 投票
2 回答
296 浏览

php - 服务定位器为空

为此引发的异常是:

在 null 上调用 get()

我不知道为什么它会抛出异常? ServiceLocatorAwareInterface应该注入ServiceLocator

0 投票
2 回答
761 浏览

zend-framework2 - 如何使用 getServiceLocator() 在模型中获取适配器?

我正在学习ZF2。

我可以getServiceLocator()用来在模型中获取适配器吗?

/config/autoload/global.php

/config/autoload/local.php

那么,我该如何使用:

在模型中获得适配器?

0 投票
1 回答
577 浏览

php - 从“深度”教程路由时获取“ServiceNotFoundException”

我已经让所有 Zend Framework 2 教程都停止在“路由”中,正是这个:https ://docs.zendframework.com/tutorials/in-depth-guide/understanding-routing/

我的问题是我已经按照建议在我的代码中制作了所有内容,但是当我在本地尝试路由时遇到此错误http://localhost:8080/blog,运行后可访问php -S 0.0.0.0:8080 -t public public/index.php

致命错误:在 C:_PROJETOS\Knowledge\ZendFramework2\5 的插件管理器 Zend\Router\RoutePluginManager 中未找到带有消息“名为“Blog\Segment”的插件的未捕获异常“Zend\ServiceManager\Exception\ServiceNotFoundException” -InDepth\vendor\zendframework\zend-servicemanager\src\AbstractPluginManager.php:131 堆栈跟踪:#0 C:_PROJETOS\Knowledge\ZendFramework2\5-InDepth\vendor\zendframework\zend-router\src\SimpleRouteStack.php(280 ): Zend\ServiceManager\AbstractPluginManager->get('Blog\Segment', Array) #1 C:_PROJETOS\Knowledge\ZendFramework2\5-InDepth\vendor\zendframework\zend-router\src\Http\TreeRouteStack.php(201 ): Zend\Router\SimpleRouteStack->routeFromArray(Array) #2 C:_PROJETOS\Knowledge\ZendFramework2\5-InDepth\vendor\zendframework\zend-router\src\Http\TreeRouteStack.php(151):Zend\Router\Http\TreeRouteStack->routeFromArray(Array) #3 C:_PROJETOS\Knowledge\ZendFramework2\5-InDepth\vendor\zendframework\zend-router\src\SimpleRouteStack.php(142): Zend\Router\Http\ TreeRouteStack->addRoute('deta in C:_PROJETOS\Knowledge\ZendFramework2\5-InDepth\vendor\zendframework\zend-servicemanager\src\AbstractPluginManager.php 第 131 行

我看不到解决问题的方法,不幸的是,很长一段时间我都没有使用 Zend Framework 2 进行编码。

我非常感谢您在理解和解决它方面的任何帮助!

我的模块被称为“博客”,在其中,这些是我的文件:

模块.config.php

列表控制器.php

ZendDbSqlRepository.php

ZendDbSqlRepositoryFactory.php

PostRepositoryInterface.php

Post.php

索引.phtml

0 投票
2 回答
5378 浏览

php - ZF3 中的服务管理器

我知道这已在其他线程中广泛涉及,但我正在努力研究如何在 ZF3 控制器中从 ZF2 控制器复制 $this->getServiceLocator() 的效果。

我曾尝试使用我在这里和其他地方找到的各种其他答案和教程创建一个工厂,但最终都把它们弄得一团糟,所以我粘贴了我的代码,就像我开始时一样,希望有人可以指出我正确的方向吗?

从 /module/Application/config/module.config.php

来自 /module/Application/src/Controller/IndexController.php

0 投票
2 回答
5196 浏览

php - 如何在 zend 框架 3 的控制器中获取服务管理器实例?

我试图在我的控制器中获取一个 ServiceManager 实例,以便为 Db\Adapter 使用工厂。

我添加到模块/应用程序/config/module.config.php:

到 config/autoload/local.php 我添加了以下几行:

现在我想访问我的模块/Application/src/Controller/IndexController.php 中的ServiceManager。我怎么做?

我试过$sm = $this->getPluginManager();没有成功。如果我$serviceManager->get(Adapter::class)使用 PluginManager 运行它会给我一个错误:

我该怎么做才能获得一个 ServiceManager 来获取我的那个 Adapter 对象?


我将控制器工厂从

我还在 module.config.php 中添加了一个 getServiceConfig() 方法,并向 IndexController 添加了一个构造函数,它接收 ServiceManager。现在我可以访问控制器内部了。

但我现在的问题是:是否有更好、更“类似 zend”的方式来实现这一目标?

0 投票
1 回答
621 浏览

zend-framework3 - 我是否正确配置了 Zend-Log 的错误处理程序和异常管理器?

我有一个 ZF 3 应用程序。我明确记录的消息,例如$log->debug()显示就好了。例外没有。似乎出现了错误,因为这是转到 stderr 的默认 php 配置。以下是 modules.config.php 中的相关行:

源代码中的行让我相信这是正确的配置

为了测试它,我做了以下端点:

0 投票
2 回答
529 浏览

zend-framework2 - zf2 - 在表单/控制器工厂中获取控制器插件

是否可以从表单/控制器工厂(任何实现 FactoryInterface 的工厂)访问控制器插件?

我有一个表单工厂,我想根据请求参数设置表单操作,但需要从配置中定义的路由访问 url。

所以在控制器中我会使用 url 控制器插件:

...我如何在工厂访问它?例如:

0 投票
1 回答
98 浏览

module - 工厂未加载到 ZF2 - 缺少参数 1

我在里面有一家工厂Module/src/Module/Service/Factory/CourseServiceFactory.php

我已将这个工厂定义module.config.php如下:

但是,在调用应用程序时未加载该工厂,并且我收到此错误:

警告:Module\Service\CourseService::__construct() 缺少参数 1,

这就是我的CourseServiceFactory.php的样子:

有人知道出了什么问题吗?

0 投票
2 回答
997 浏览

zend-framework2 - 找到了 LazyServiceLoader 的循环依赖项,例如“UserService”

在 Zend Framework 2 中,

我有一个控制器类UserController

  • UserController取决于UserService
  • UserService取决于UserChangedListener
  • UserChangedListener取决于SomeOtherClass
  • SomeOtherClass取决于UserService

所以在这里我UserControllerSomeOtherClass都依赖于UserService.

我收到错误:

例如,发现了 LazyServiceLoader 的循环依赖项 UserService

上述错误(即 LazyServiceLoader 的循环依赖)在我注入时SomeOtherClass发生UserChangedListener

我有

"zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",

用户控制器工厂.php

用户服务工厂.php

UserChangedListenerFactory.php

SomeOtherClassFactory.php