Я использую компонент маршрутизатора Symfony. Маршрутизатор сообщает вам, совпадает ли определенный маршрут с входящим запросом, и возвращает вам массив с информацией этого маршрута (в моем случае я определил контроллер и метод). Я хочу знать, какой метод является лучшим для выполнения этого метода. Прямо сейчас я делаю что-то вроде этого:
<?php
require 'vendor/autoload.php';
use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\HttpFoundation\Request;
$routes = new RouteCollection();
$routes->add('test', new Route(
'/test/{id}',
['_controller' => 'app\controllers\testController::test'],
['id' => '[0-9]+'],
[],
'',
[],
['GET']
)
);
$context = new RequestContext();
$context->fromRequest(Request::createFromGlobals());
$matcher = new UrlMatcher($routes, $context);
try {
$parameters = $matcher->match($context->getPathInfo());
call_user_func_array($parameters['_controller'], array_slice($parameters, 1, -1));
} catch (ResourceNotFoundException $e) {
echo $e->getMessage();
}
?>
Это работает, но я не знаю, правильно ли это сделать.