Задать вопрос
@Heinemann

Как преобразовать callback к исполняемой callback функции?

Есть класс Route, в котом я что-то не понимаю как связать метод prepareCallback и run.
class Router
{
    private $method;
    private $path;
    private $callback;
    
    public function get($path, $callback)
    {
        
    }
    
    private function prepareCallback($callback)
    {
        
    }
    
    public function run($uri)
    {
        
    }
    
}


prepareCallback() - преобразует callback к исполняемой callback функции.
run() - запускает и возвращает результат работы callback функции. параметры получает из url и передает в callback функцию.

Что значит: prepareCallback() - преобразует callback к исполняемой callback функции? Если я правильно понимаю, то это результат работы call_user_func, но как потом этому результату передать параметры из url в методе run?

Мой вариант реализации метода run($uri) без проверок и получений параметров из uri:
if (is_object($this->prepareCallback($this->callback))) {
            return call_user_func($this->callback, $uri);
        } else {
            return $this->prepareCallback($this->callback);
        }


Вызов роутера
$router->get('/about', function() {
    return new App\View\View('index', ['title' => 'about page']);
});

$router->get('/cat',      \App\Controller::class . '@category');
$router->get('/delivery', function (){
    return 'delivery';
});
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 12 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы