Я пытаюсь использовать класс CacheManager
в качестве зависимости в моем сервисе:
<?php
declare(strict_types=1);
namespace App;
use GuzzleHttp\Client;
use Illuminate\Cache\CacheManager;
class MatrixWebService implements WebServiceInterface
{
public function __construct(Client $client, CacheManager $cache)
{
$this->client = $client;
$this->cache = $cache;
}
}
Поскольку может быть несколько реализаций WebserviceInterface
, мне нужно определить его в AppServiceProvider
соответственно:
$this->app->bind(WebServiceInterface::class, function () {
return new MatrixWebService(
new Client(),
$this->app->get(CacheManager::class)
);
});
Проблема в том, что когда я пытаюсь использовать свой сервис, Laravel не может разрешить CacheManager
класс (вместо этого есть некоторая замена для cache
):
[2018-07-02 22:45:26] local.ERROR: Class cache does not exist {"exception":"[object] (ReflectionException(code: -1): Class cache does not exist at /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php:769)
[stacktrace]
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(769): ReflectionClass->__construct('cache')
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(648): Illuminate\\Container\\Container->build('cache')
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(610): Illuminate\\Container\\Container->resolve('cache')
#3 /var/www/html/app/Providers/AppServiceProvider.php(28): Illuminate\\Container\\Container->get('Illuminate\\\\Cach...')
...
Есть идеи, как правильно к этому подойти?