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

php - 疙瘩依赖注入静态或对象

Pimple 有助于跨应用程序重用相同的对象,并管理依赖关系。

但是如何管理疙瘩本身?

我应该创建一个全局对象吗?还是让它成为静态类?还是使用函数?

我想从任何地方访问 Pimple 方法、控制器、模型、插件等......

谢谢!!

0 投票
0 回答
371 浏览

php - 带有疙瘩的依赖注入 - 传递闭包

我有一个简单的应用程序,我正在尝试开始使用 DI 容器。我下载了 Pimple,研究了代码和文档。过了一会儿,我来了有趣的事情。我有两个类,在特殊情况下它们之间相互通信。

我已经定义了 Pimple 容器,有两个类,如下所示:

这是 var_dumped 容器:

问题是,当我创建使用 $container['foo'] 时,它尝试注入需要 foo 的类 Bar,因此最大嵌套存在错误。我的想法是,为什么没有通过关闭?在课堂上真正需要时会执行哪个?

还是我完全误解了闭包是什么?

0 投票
1 回答
1236 浏览

php - PHP延迟加载与Pimple Dependency Injection Container?

最近我开始使用 Pimple(和 Silex 一起)。根据 Pimple 的使用方式,它可以是服务定位器或依赖注入容器。我知道应该避免使用服务定位器模式的原因。然而,似乎困扰我的一件事是创建依赖实例的那一刻。

在依赖注入的情况下,创建所需类的实例并将其传递给构造函数:

如果我们将容器本身传递给类构造函数,则在需要它们之前不需要创建依赖实例。

结果,即使我们只调用 Foo 类的两个方法之一,在第一个示例中,仍然会创建两个依赖实例。这段代码是一个非常简单的示例,但我希望在具有更多依赖结构的更复杂的类的情况下问题会增加。我确实注意到其他一些依赖注入容器使用代理类,但找不到该库的任何内容。有没有更好的选择来延迟加载 Pimple 的依赖项?

0 投票
2 回答
739 浏览

php - 如何在自定义 mvc 框架中集成 pimple?

我有一个类似 mvc 的基本框架,我想使用 pimple 进行依赖注入,但我不知道如何在框架内使用它。这是我的应用程序结构。

现在,homeController.php我想使用 Pimple,但实际上并没有new Pimple像这个例子中看到的那样做。

从这个例子中可以看出,在每个控制器上初始化 pimple 类将是一项非常繁琐的任务。这是如何正确完成的?

0 投票
1 回答
392 浏览

php - 如何使用 Pimple C 扩展

我安装了 Pimple C 扩展,并且在我的phpinfo()中我可以看到 Pimple 扩展处于活动状态。

我的 composer.json 中也有疙瘩/疙瘩,并且加载了 php 包。

据我所知,它们没有发生碰撞,因为我没有收到任何错误,但我怎么知道扩展程序正在使用中?

当我安装了 Pimple C 扩展时,我还需要 php Pimple 包吗?
C 扩展会默默地覆盖 php 类吗?

php 会首先检查 php 本身中是否存在类,然后回退到 php 实现,这是常见的行为吗?

0 投票
1 回答
347 浏览

php - Silex 服务 - $app 参数或“使用 ($app)”语句?

如果我在 Silex 应用程序中定义服务,我可以期望主容器(应用程序)作为参数传递,也可以使用“use ($app)”语句从当前范围获取它。

http://silex.sensiolabs.org/doc/services.html的官方文档有这个片段:

但它同样可以写成

我见过很多这样的代码示例。只是个人品味还是其中一个比另一个有好处,例如在性能、内存使用或代码隔离方面?


编辑: 我已经运行了“使用”与参数与简单函数的性能比较:

第一个是最慢的,但总体差异小于 25%。就像任何微优化一样,只有当你有成千上万个这样的优化时,它才会引人注目,因为最快和最慢之间的时间差约为 1/10,000,000 秒(100 万次重复为 0.05 秒)。

所以不应该考虑性能差异。

0 投票
2 回答
2044 浏览

php - 将参数传递给 Pimple->container->factory

所以我基本上想这样做:

从调用传入的位置$parameter_1$parameter_2位置,如下所示:

我知道上面的语法不正确,但我想将这些字符串传递给对$this->container->factory.

这可能吗?

例如,如果我想从各种控制器函数中实例化 Menu_builder,每个控制器函数具有不同的参数。

0 投票
1 回答
137 浏览

php - Pimple 始终作为数组返回

我有这个特质

我有这个代码使用它(通过一个App类)

我看到的是第一个var_dump结果是一个array,第二个是一个实例Pimple\Container

我期待它们都是同一个实例。有人能告诉我这里发生了什么吗?

0 投票
2 回答
287 浏览

php - Laravel 外部的 Laravel IoC

我使用这个repo作为使用 Eloquent 作为 ORM 的新 CLI PHP 项目的基础。

当您创建新的 Eloquent 时capsule,您可以选择setAsGlobal从代码中的任何位置访问 DB Capsule。

这是否意味着正在使用 Laravel 容器?或者这只是影响数据库对象?

我一直在使用pimple作为容器,但是如果 Laravel 已经有一个可以通过 Eloquent 绑定到的容器,那会简单得多——我想绑定一个日志写入器、Eloquent 胶囊,可能还有一个设置对象全局容器,所以我可以从任何地方访问它。

0 投票
1 回答
129 浏览

php - 使用 Pimple 定义框架控制器的依赖项

所以我有一个控制器,我添加了它与 Pimple 的依赖项,如下所示:

当我转到此控制器中任何操作的 URL 时,它只会显示:

要加载任何具有依赖关系的类,我通常会说:

但我不确定在框架控制器的情况下将这个调用放在哪里。

控制器如下所示:

问题:我在这里做错了什么?以上适用于返回除控制器以外的任何类。