zf2 ServiceManager 与 ServiceLocator

2023-12-30

我正在学习 zf2,从网上阅读文档、教程等。现在我很困惑Zend\ServiceManager\ServiceManagerAwareInterface.php and Zend\ServiceManager\ServiceLocatorAwareInterface.php.

也在某些地方(比如控制器)我使用$this->getServiceLocator()获取ServiceManager对象,而在其他一些地方我们使用->getServiceManager()它也返回相同的ServiceManager object.


定位器是接口。 Zend Framework 2 的设计是通过“契约设计”完成的,这意味着您依赖于接口而不是类。 Manager 是 Locator 的默认实现。

除一个组件外,所有组件都使用定位器。然而,管理器提供的功能比界面上显示的要多。这Zend\Mvc\Application使用这些功能,因此依赖于管理器而不是定位器。

在 *Aware 初始化程序中使用定位器的决定对于发布来说为时已晚,因此这就是为什么有两个ServiceLocatorAwareInterface and a ServiceManagerAwareInterface。已经有使用管理器初始化程序的用户态代码,因此保留它是为了向后兼容。在内部,所有组件都使用定位器初始值设定项。如果必须选择,请选择“定位器”并尽可能将“管理器”放在一边。

不久前,我还在博客中介绍了定位器和管理器:https://juriansluiman.nl/article/120/using-zend-framework-service-managers-in-your-application https://juriansluiman.nl/article/120/using-zend-framework-service-managers-in-your-application

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zf2 ServiceManager 与 ServiceLocator 的相关文章

  • 在运行时根据请求参数创建EF Core DbContext

    背景 我们正在使用 ASP Net Core 和 Entity Framework Core 2 2 构建一个 Web 应用程序 我们正在连接到旧数据库 设置是有 16 个数据库 全部具有完全相同的架构 保存不同的上下文数据 我们无法改变这
  • 限制 Apigility 中的结果

    我使用 Apigility 创建了一个代码连接 API 现在我正在使用标准创建存根 在我的PostResource有一种方法叫做fetchAll params array 我为该方法创建了代码 以便它返回一组可分页的结果 var Hydra
  • ZF2 getServiceLocator() 未找到?

    我一生都无法让 this gt getServiceLocator 在我的控制器中工作 我已经阅读并尝试了一切 我猜我错过了什么 这是一些代码 namespace Login Controller use Zend Mvc Controll
  • 如何将 LESS 集成到 ZendFramework 2 中

    我已经发现本教程 https stephen rees carter net thought integrating less with zend framework the easy way这是为了Zend框架1 我下载少了放在下面项目
  • Zend Framework 3 中的 GetServiceLocator

    早上好 我一直在学习使用框架 Zend Framework 进行编程 根据我过去的经验 我使用的是骨架应用程序 v 2 5 也就是说 我过去开发的所有模块都围绕 ServiceManager 的 servicelocator 工作 有没有办
  • 授予 bjyauthorize 从 CLI 运行 ZF2 mvc 应用程序的权限

    我在 ZF2 上有一个完全运行的 mvc 应用程序 我想从命令行运行一些操作 我已经正确设置了控制台路由和其他环境 当我从 CLI 运行我的应用程序时 出现权限被拒绝的异常 如下所示 You are not authorized to ac
  • Zend Framework 2 - 如何包含库中的部分内容

    我写了一个部分 我想在几个模块中使用它 我认为最好的方法是将其放入我的自定义库中 但不幸的是 我无法找到一种方法来包含这个部分 而不使用像这样的非常难看的路径 echo this gt partial vendor myvendor lib
  • 从 Zend Framework 2 中的路由获取 $_GET 参数

    Zend Framework 1 有一种非常简单的方法来解析 URL 路由并在 GET 超全局中设置找到的参数以便于访问 当然 您可以在控制器内使用 gt getParam something 但如果在 URL 中找到参数 则它是also可
  • 如何启动一个新的大型 ZF2 项目?

    我将使用 ZF2 创建一个新项目 事实上 我必须升级 ZF1 项目 但我决定从头开始 我的项目非常庞大 已经被来自世界各地的志愿者翻译成 10 种不同的语言 我遇到的困难是分析 ZF2 告诉我要遵循的模块结构 该软件允许 ISP 领域的中小
  • config_cache_enabled 错误

    使用 Zend 框架 2 1 当我设定 config cache enabled gt true在我的里面application config php 它返回以下错误 Warning var export does not handle c
  • ZF2:如何从自定义类内部获取 ServiceManager 实例

    我无法弄清楚如何从自定义类内部获取 ServiceManager 实例 在控制器内部很简单 this gt getServiceLocator gt get My CustomLogger gt log 5 my message 现在 我创
  • 从 Zendframework 2 中的布局调用模型中的方法

    我尝试在 Zendframework 2 中调用模型表单布局中的方法来显示一些用户特定的内容 我尝试在 Module php 的 init 和 onBootstrap 中执行此操作 并尝试声明一些将在 layout phtml 中可用的变量
  • 服务定位器和依赖注入之间的实际区别是什么?

    我正在经历之前的讨论 其中详细讨论了服务定位器和依赖项注入器之间的区别 但我仍然无法理解 我可以在没有任何代码的情况下获得一般响应吗 此代码示例应用了依赖注入 http en wikipedia org wiki Dependency in
  • ACL授权失败后ZF3重定向

    我有一个带有 ACL 的新 ZF3 应用程序 现在 我需要在未经授权的访问的情况下重定向到错误页面 例如 403 我认为最好的方法是触发一个事件 然后捕获它 但我失败了 全部都在我的用户模块中Module php 摘录 namespace
  • 如何在 zend Framework 2 中禁用渲染视图?

    我想使用一些 ajax 但我不知道如何使用与 zend Framework 2 中的 setNoRender 相同的函数来禁用渲染视图 如何在 zend Framework 2 中禁用渲染视图 要禁用您的视图 public function
  • ZF2 共享模块事件管理器

    当特定情况发生时 我需要在每个模块中实现一个事件触发器 我还需要所有其他模块在触发该事件时必须执行某些工作 请注意这一点 我正在尝试创建一些通用端点 我可以在其中发送触发器 并且所有模块都需要监听 但我在弄清楚如何实现这一点时遇到了一些麻烦
  • 表单未将帖子值绑定到实体

    我有一个学说实体 一个表单和 2 个字段集 当我用值填充实体时 值会按预期合并到表单中 当我尝试从表单数据创建实体时 它保持为空 我一定是忘记了什么 但就是找不到它 我还有其他几种没有字段集的表单 它们按预期工作 有任何想法吗 下面发布了我
  • Zend Framework 2 重写 URL

    我有一个 Zend Framework 2 应用程序 我希望使用 htaccess 重写一些 URL htaccess 文件位于我的公用文件夹中 我已经验证了一个简单的重写规则 它将所有 testurl 重写为 test php Rewri
  • ZF2 路由与 ZF1 相同

    如何使路由自动适用于 ZF1 结构中的所有内容 模块 控制器 操作 par1Name par1Val par2Name par2Val 我阅读了有关路由的信息 但在我看来 我必须手动添加所有操作 并且我发现可选参数存在问题 您可以至少在每个
  • 404 路由无法匹配请求的 URL

    我刚刚开始学习zend 框架 questions tagged zend framework并遵循此用户指南 http framework zend com manual 2 3 en index html 我能够成功安装zend skel

随机推荐