将参数传递给 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 !!!!
}