问题标签 [laravel-ioc]
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.
laravel - 在存储库中注入
我发现了很多关于我的问题的问题并尝试了(我认为)所有的解决方案,但我无法让它发挥作用。我可能忽略了一些非常容易的事情。
我正在使用 Laravel 5。我尝试实现存储库模式。我有一个 Eloquent 模型 '\Notos\Kind'。
然后我有这个界面:
我的存储库如下所示:
我的服务提供商:
还有我使用存储库的控制器:
此提供程序在 config/app.php 中注册
当我尝试执行 KindController@find 时,出现此错误:
我找不到我做错了什么。如果我将 __construct(Model $kind) 更改为 __construct(Kind $kind),它会完美运行。
有任何想法吗?谢谢
php - Laravel 5 - 接口不可实例化
我知道这个问题被问了很多次,但没有一个答案对我有帮助。
我在 Laravel 5 中遇到了异常
我所做的没有成功:
App\Providers\AppRepositoryProvider
在app.php
提供者中注册php artisan clear-compiled
- 如果我在 MyService 中替换存储库上的接口,一切正常,但我觉得这是错误的(应该由 IoC 容器处理吗?)。
结构:
App\Contracts\CustomModelInterface.php
App\Repositories\CustomModelRepository.php
App\Services\MyService.php(在控制器和存储库之间保留业务逻辑/层)
App\Providers\AppRepositoryProvider.php
我的控制器看起来像:
作曲家.json
php - 覆盖日志接口容器绑定 lumen 5.0
我正在尝试覆盖 lumen 写入日志的位置,从“storage/logs/lumen.log”到“php://stderr”。以下代码是我目前正在尝试的,它没有按预期工作。
没有抛出错误,我的日志仍然写入默认位置(在 storage/logs 文件夹中)。
当我这样做时:
我得到了默认实现。
我是否误解了文档,还是我以错误的方式处理这个问题?
laravel - Laravel IoC 不会自动解析接口
我刚刚遇到了这个例子,但它无法将绑定接口解析为实现。
具有以下代码文件:
绑定发生在app/Providers/AppServiceProvider.php
MakeSomeNoise
作业是从控制器分派的
在 (*) 处,我希望 Laravel 会自动解析绑定,但它不会。这里的错误,
但如果我只是注入控制器构造函数,它工作正常。
对此有什么想法吗?
laravel-5 - 如何将参数从resolve()传递给give()中指定的回调?
A 类的构造函数需要 B 类的实例,而 B 类的构造函数又接受一个可选的字符串参数。
我希望能够在解析 A类时为 B 类构造函数指定该字符串参数的值。我想在我的服务提供者中执行类似的操作:
然后像这样获取 A 的实例(假设 A 已绑定到容器中的 AInterface ):
php - 如何根据 laravel 中的类型实例化类?
所以我有一个BaseValuation
抽象类,它是实现示例FooValuation
和BarValuation
.
我想根据使用输入实例化Foo
或实现。Bar
所以我自己创建了一个简单的类Valuation
,它只是这样做:
使用它我可以简单地做(new App\Valuation\Valuation($id, $type))->make()
,我会根据用途要求得到所需的实现。
但我知道 laravel 的容器很强大,必须让我以某种方式做到这一点,但我不明白如何做到这一点。有什么想法吗?
laravel - 如何为 Laravel 中的一个类提供多种实现?
我们正在使用一些地理编码来编码一些条目。根据某些条件,我们希望从一个实现切换到另一个(不同的提供者)。
当前服务提供商声明:
当前注入:
目标是实现这样的目标:
我试图通过为我的替代方案制作一个假的子类来破解它Geocoder
,不幸Geocoder\StatefulGeocoder
的是final
。所以这不是一个解决方案。
编辑
Geocoder
似乎支持多个提供商,所以这应该解决它。我把这个问题留了下来,因为我认为一个一般性的答案是相关的。
php - 如何将实现数组注入PHP中的构造函数
如何通过构造函数将实现数组注入类。我正在分享 C# 的链接。我想在 php 中实现相同的目标。
如何在 php.ini 中实现相同的功能。
https://stackoverflow.com/a/13383476/1844634
提前致谢。