小编rob*_*tra的帖子

Laravel 5 IoC 容器在使用方法注入时无法解析上下文绑定

在我的 Laravel 5 应用程序中,我在服务提供者中为接口注册了上下文绑定,如下所示:

$this->app->when('App\Http\Controllers\MyController')
    ->needs('App\Contracts\MyRepositoryInterface')
    ->give('App\Repositories\MyRepostory');
Run Code Online (Sandbox Code Playgroud)

在控制器内部MyController,我有index()我试图注入的方法,MyRepositoryInterface如下所示:

public function index(App\Contracts\MyRepositoryInterface $repo)
{
    // Stuff
}
Run Code Online (Sandbox Code Playgroud)

问题是,上面的方法不起作用并给出了这个错误:

Container.php 第 754 行中的 BindingResolutionException:

目标 [App\Contracts\MyRepositoryInterface] 不可实例化。

但是,如果我将上下文绑定更改为如下所示的普通绑定,它会起作用:

$this->app->bind(
    'App\Contracts\MyRepositoryInterface',
    'App\Repositories\MyRepository'
);
Run Code Online (Sandbox Code Playgroud)

我注意到的另一件事是,相同的上下文绑定适用于控制器的构造函数方法,如下所示:

public function __constructor(App\Contracts\MyRepositoryInterface $repo)
{
    // Stuff
}
Run Code Online (Sandbox Code Playgroud)

这让我想知道,方法(构造函数除外)注入不支持上下文绑定吗?或者这仍然是一项正在进行的工作,一旦 Laravel 5 出来就会得到支持?

还是我做错了什么?

任何建议将不胜感激,因为我一直在为此纠结!

laravel laravel-5

5
推荐指数
1
解决办法
2338
查看次数

在Paw中为Xdebug添加cookie

我使用Xdebug和PHPStorm的调试功能调试我的API.为此,客户端需要一个名为的cookie XDEBUG_SESSION.

使用Postman时,我曾经使用Chrome扩展程序添加此Cookie,以及Postman的Cookie拦截功能,以便在Postman中使用它(因为它是一个沙盒应用程序).

但是,我无法在Paw中创建cookie.因此,作为一种解决方法,我修改了API响应cookie以使密钥为XDEBUG_SESSION和值为PHPSTORM,并且调试工作正常.然而,这并不理想,因为我也希望将到期日设置为远期(我不能在Paw中).

所以,我的问题是:

  • 有没有办法在Paw中添加自定义cookie?
  • 如果没有,是否有办法编辑现有cookie的到期日期(考虑到名称,价值,域和路径是否可编辑)?
  • 有没有其他方法可以实现我的目标?

cookies paw-app

4
推荐指数
1
解决办法
1778
查看次数

标签 统计

cookies ×1

laravel ×1

laravel-5 ×1

paw-app ×1