Я был назначен на проект, который должен включать компоненты Symfony для реорганизации его бизнес-логики. Однако я запутался, посмотрев документ Symfony HTTP-Foundation. Надеюсь, что кто-то здесь может помочь мне объяснить, как этот компонент работает с запросами и ответами пользователей Http.
В основном то, что я делал в проекте:
при наличии страницы PHP создается объект запроса с URL-адресом и методом запросов
Использование ApiRouter для направления кода на нужный контроллер
Внутри контроллера он отправит HTTP-запрос на сервер и преобразует ответы в виде объекта Symfony Response на основе URL-адреса запроса.
location.php
class GetLocation
{
public function __construct($q)
{
$request = Request::create('location?v=full&q=' .
urlencode($q), 'GET'); //simulates a request using the url
$rest_api = new RestApi(); //passing the request to api router
$rest_api->apiRouter($request);
}
}
ApiRouter.php
//location router
$location_route = new Route(
'/location',
['controller' => 'LocationController']
);
$api_routes->add('location_route', $location_route);
//Init RequestContext object
$context = new RequestContext();
//generate the context from user passed $request
$context->fromRequest($request);
// Init UrlMatcher object matches the url path with router
// Find the current route and returns an array of attributes
$matcher = new UrlMatcher($api_routes, $context);
try {
$parameters = $matcher->match($request->getPathInfo());
extract($parameters, EXTR_SKIP);
ob_start();
$response = new Response(ob_get_clean());
} catch (ResourceNotFoundException $exception) {
$response = new Response('Not Found', 404);
} catch (Exception $exception) {
$response = new Response('An error occurred', 500);
}
То, что я надеюсь узнать, является ли мое понимание правильным относительно логики или нет? И что означает метод Request: createFromGlobal, каковы различия между этим и Request: create (URL)
Пожалуйста, дайте мне знать, если мой вопрос должен быть более конкретным.