将参数传递给 Symfony 的 $cache->get()
Pass parameters to Symfony's $cache->get()
恐怕我有一个初学者PHP的问题。我正在使用 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 为空。
当然,我可以在 class MainController 中使用 public class 变量来来回发送变量,但这似乎有点笨拙。
在 PHP 中,闭包默认无法访问其作用域外的变量,您必须 use
像这样:
return $cache->get('myCacheName', function (ItemInterface $c) use ($url) {
var_dump($url); // ---> no longer null !!!!
}
恐怕我有一个初学者PHP的问题。我正在使用 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 为空。 当然,我可以在 class MainController 中使用 public class 变量来来回发送变量,但这似乎有点笨拙。
在 PHP 中,闭包默认无法访问其作用域外的变量,您必须 use
像这样:
return $cache->get('myCacheName', function (ItemInterface $c) use ($url) {
var_dump($url); // ---> no longer null !!!!
}