问题标签 [pimple]

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 投票
2 回答
1026 浏览

php - Pimple ArgumentCountError:功能参数太少

我试图理解依赖注入,理论上我明白了,但是,我想举一个例子来帮助我。但是,我收到以下错误

这是我的“主”文件,我称之为index.php

这是传递给服务的模型

而且,这是服务,它将模型作为其构造函数参数

所以,理论上,Pimple 应该能够实例化一个UserService对象。我什至验证了传递给UserService类的UserModel是一个有效的UserModel对象(很明显它打印出一个数组)

我错过了什么?有什么我没有解释的吗?

哦,这是 composer.json 文件

我创建了一个 gitHub 链接,因此可以签出并运行该项目,而无需复制所有内容(https://github.com/gitKearney/pimple-example

解决方案

问题是我有一个额外的产品

太明显了,我看不出来

0 投票
1 回答
404 浏览

php - 如何最好地使用 Pimple 在另一个类中使用对象工厂进行依赖注入?

我仍在尝试使用 Pimple 来了解依赖注入设计模式的某些方面。我完全明白了使用属于类 Foo 的构造函数或设置函数来建立它对类 Bar 的依赖的概念。

我不太明白的部分是如何在使用 Pimple 工厂时从属于 Foo 的方法中正确实例化多个类 Bar 的新实例。

基本上我想完成相当于这个:

块.php

页面.php

我正在为我的容器使用 Pimple,如下所示:

引导程序.php

这个想法是可以定义多个页面,并且每个页面可能由多个块组成。每个块的属性由 Page 中的方法定义。它需要使用完全解耦的代码来实现。

据我了解,将整个容器作为依赖项注入 Page 实际上是 Service Locator 反模式。所以以下是错误的代码:

如何让 Page 能够使用 DIC 中定义的 Block 工厂?

0 投票
0 回答
102 浏览

php - 使用 pimple 时在构造函数中注入

背景。我正在使用 Slim,其中 ID 位于端点或参数中。基于 ID,工厂创建适当的对象来执行所需的操作。

我有一个服务需要在请求中获得的一些数据注入它。因此,我可以执行以下操作:

但是该服务未在定义服务的 index.php 中使用,而是在另一个类中使用,因此我可以执行以下操作:

但我想使用 index.php 中分配的实例,所以我可以执行以下操作:

但是使用容器来传递数据似乎是错误的。

如果在定义服务时不知道数据,应该如何将数据注入到 pimple 服务中?

0 投票
0 回答
38 浏览

php - 惰性服务注入器 PHPDoc

我正在寻找一种解决方案来为 PhpStorm IDE 正确声明一个惰性服务注入器。这是一个例子:

0 投票
2 回答
71 浏览

php - 将超出范围的数据传递到服务容器

我希望创建一个新实例,SomeService该实例必须注入一些在 Pimple 中定义服务时未知的数据。以下在技术上有效,但肯定不是这样做的正确方法。这应该如何实现?

0 投票
1 回答
41 浏览

php - 保存时修改管理员配置值

我在 Grav 的管理面板中创建了一个配置表单,我想在保存时扩展/修改它的一些值。更准确地说,我在蓝图中有一个如下所示的列表表单元素:

保存时,我想generate_on_save用唯一的 id 替换所有值。我试图挂钩onAdminSave事件,但事件对象只包含\Grav\Common\Data\Blueprint的一个实例,没有实际的表单数据。然后我尝试修改请求对象,但是当我在 grav 容器中注册修改后的请求时,出现错误Cannot override frozen service 'request'

我怎样才能完成这项任务?