Передайте параметры в $cache->get() Symfony
Я боюсь, у меня есть вопрос для начинающих PHP. Я использую компонент Cache Symfony. https://symfony.com/doc/current/components/cache.html
Я вызываю кеш-объект внутри функции, которая получает 2 аргумента ($url, $params).
class MainController extends AbstractController {
public function do($url, $params) {
$cache = new FilesystemAdapter();
return $cache->get('myCacheName', function (ItemInterface $c) {
global $url;
var_dump($url); // ---> null !!!!
}
}
}
Моя проблема в том, что я не могу получить доступ к аргументам функции внутри вызова метода кеша. $url и $ params равны нулю. Конечно, я мог бы использовать общедоступные переменные класса в классе MainController для отправки переменных назад, но это кажется немного неуклюжим.
1 ответ
Решение
В PHP замыкание по умолчанию не имеет доступа к переменным, находящимся вне области видимости. use
такие как:
return $cache->get('myCacheName', function (ItemInterface $c) use ($url) {
var_dump($url); // ---> no longer null !!!!
}