Допустим, в одном месте вызывается метод класса
Simple::do( '/product/?id={v}', function($id) {
echo $id;
return false;
});
Этот метод должен обработать заданный URL
public function do($url, Closure $callback = NULL) {
...
$parsed_url = ... // тут строка '/product/?id={v}' превращаются в массив: ключ это ключ, а значение это то, что вместе {v}. Это от текущего запроса должно браться.
$callback($id) // тут вызывается переданная анонимная функция. ей передаются в виде переменных ключи массива
...
}
При этом количество аргументов переданных зависит от количества того, что в фигурных скобках {v}
То есть в ходе выполнения должно быть так:
Допустим, сейчас открыта страница example.com/product/?id=1&category=4
Анонимная функция классовым методом будет вызвана вот так: function(1, 4) {}
Внутри функции они будут доступны через переменные $id и $category.