问题标签 [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 投票
0 回答
114 浏览

middleware - Silex/Pimple:中间件不会立即更新应用程序参数

我使用 Silex/Pimple 容器来存储我的应用程序的参数。其中一些参数是使用中间件设置的。

现在我遇到了一个问题,我想访问一个应该通过中间件设置的参数值。但是当我输出它时,它仍然包含旧值。

这是我的代码的简化版本:

输出:

有人知道我如何强制中间件先运行然后输出吗?还是有其他方法可以在其他所有事情之前与请求进行交互?

0 投票
1 回答
211 浏览

doctrine-orm - 在 Silex 应用程序中更新使用的疙瘩版本

我目前正在使用silex 1.3创建一个应用程序。

我想使用dflydev 学说 orm 服务提供者

对于这个服务提供商,pimple >=2.1 是必需的——但我的 silex 版本带有 pimple 1.x。

我尝试通过 composer 安装较新的版本,但这会导致错误:

您的要求无法解决为一组可安装的软件包。

问题 1 - silex/silex v1.3.0 需要 pimple/pimple ~1.0 -> 找不到匹配的包 d。- silex/silex v1.3.0 需要 pimple/pimple ~1.0 -> 找不到匹配的包 d。- silex/silex v1.3.0 需要 pimple/pimple ~1.0 -> 找不到匹配的包 d。- silex/silex v1.3.0 的安装请求 -> silex/silex [ v1.3.0] 可满足。

所以我的问题是:我怎样才能更新这个疙瘩版本?

编辑:我刚刚看到有一个旧版本的 dflydev-doctrine-orm-service-provider,它使用 pimple 1.x,所以我想我必须使用这个版本。 不过,如果更新(理论上)是可能的,我会很感兴趣。

0 投票
1 回答
159 浏览

php - Pimple 源代码:为什么要将对象 id 和对象本身存储在不同的数组中?

查看Pimple 源代码,我发现它将对象及其 id 存储在两个不同的数组中:

接着:

最后:

我在这里的 Phalcon 源代码中也看到了类似的东西。

我的问题是为什么要单独存储对象 ID 键,为什么不只是if (!isset($this->values[$id]))?在数组中搜索是否更快?我做了一些测试,似乎搜索速度几乎相同。

0 投票
1 回答
509 浏览

php - 你如何用 Pimple 注射 Valitron 并重复使用

所以我一直在使用 Valitron 库来验证发布的表单,并且遇到了一些问题。

构造函数接受要验证的数据,当您将库作为 Pimple 或其他容器的依赖项注入时,这会导致问题。如果你想验证多个东西,它也会导致问题,因为你基本上每次想要使用它时都必须实例化库。

有没有办法解决这个问题?

最终,我希望能够将库定义为服务并像这样用 Pimple 注入它:

任何需要验证某些东西的控制器/类都会在它们的构造函数中初始化它,如下所示:

每当我需要验证某些内容时,我都可以说:

但似乎没有 setData 函数,或任何在使用之间重置库的方法。

问题:我如何将 Valitron 与 Pimple 一起使用并重用它来一次验证多个事物?

请注意:必须注入。它也不应该需要在每次使用之前进行初始化。请不要告诉我我必须扩展库或破解它才能使其正常工作!

0 投票
1 回答
108 浏览

php - 肿胀的疙瘩容器 - 这是正常的吗?

所以我刚刚将 Pimple 集成到一个项目中,我现在的情况是我有一个文件:

其中包含 400 多个:

我的问题是:这是常态吗?我应该担心这个吗?有更好的方法吗?

0 投票
2 回答
2482 浏览

php - 找不到类“Pimple\Container”

我正在尝试按照https://github.com/silexphp/Pimple自述文件在我的项目中安装 Pimple。

我收到的错误消息是:

我的 composer.json 文件是:

当我做:

或者

消息是:无需安装或更新

在 vendor/bin 我只能看到 phpunit 文件。但是我可以在 composer.lock 中看到疙瘩

我的 PHP index.php 文件:

你能帮我让它工作吗?

0 投票
3 回答
1589 浏览

php - 不推荐使用 Pimple DI 共享。怎么办?

在 Pimple 1.0 中,我曾经能够像这样共享类实例:

现在这似乎已被弃用,我无法找到这样做的新方法。

0 投票
4 回答
709 浏览

php - PhpStorm 自动完成对 Pimple 管理的未知对象属性的支持?

我在由 Silex 提供支持的应用程序中有以下代码:

$uknownObj作为一个依赖注入容器。

我知道这unkownRef是一个例子MyCoolObj

现在我如何告诉 IntelliJ / PhpStorm 来帮助我自动完成这个对象?

0 投票
1 回答
386 浏览

php - 为什么 Pimple 工厂方法会返回相同的实例?

我正在使用Pimple 的工厂方法,但它每次都返回相同的实例。

鉴于方法的定义说它每次都会提供一个新实例,这是我不期望的确切行为。

我在 PHP 7.0.4 上,我的粉刺作曲家文件标记为^3.0.0

0 投票
1 回答
446 浏览

php - 带工厂的 PHP 依赖注入容器

我正在使用silexphp/Pimple依赖注入容器(DIC)并且不确定如何处理经典的工厂模式。

例子:

父类Animal.php有两个子类,称为DogAnimal.phpCatAnimal.php。子班的数量可以增加。

在这种情况下,我想创建一个工厂来创建新的 Animal 对象或 Animal 类的孩子。Pimple 确实允许为每个服务创建工厂方法。

在使用 Pimple DIC 时,我认为我不想将每个子类(狗、猫等)添加为服务。特别是随着列表的增长。对我来说,这似乎是对 DIC 的滥用,但也许我错了。

我是否正确假设我应该创建一个动物工厂服务并使用 Pimple 将依赖项注入工厂,而工厂又用于创建新的狗或猫?