如何在Laravel上通过DI注册服务?

时间:2019-12-04 10:46:02

标签: php laravel laravel-5 dependency-injection

如何注册任何服务,例如:可以在laravel中以当前状态在其他任何服务中使用RequestStack?

如果我在一个服务中注入并推送请求以请求堆栈,则无法在其他服务中访问它(RequestStack重新构建)

<?php

namespace App\Services;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

class CustomClass
{
    /**
     * @var RequestStack
     */
    private $requestStack;

    public function __construct(RequestStack $requestStack)
    {
        $this->requestStack = $requestStack;
    }

    public function createRequest()
    {
        $this->requestStack->push(new Request());
    }
}
<?php

namespace App\Services;

use Symfony\Component\HttpFoundation\RequestStack;

class CustomClass2
{
    /**
     * @var RequestStack
     */
    private $requestStack;

    public function __construct(RequestStack $requestStack)
    {
        $this->requestStack = $requestStack;
    }

    public function getRequest()
    {
        // Empty
        $request = $this->requestStack->getMasterRequest();
    }
}

如何在全球范围内注册RequestStack,以便我可以通过任何其他服务访问任何修改?

0 个答案:

没有答案
相关问题