Проверка требований запроса в PHP Symfony: нужно ли мне использовать сервисы? (ООП против сервисов в Symfony)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проверка требований запроса в PHP Symfony: нужно ли мне использовать сервисы? (ООП против сервисов в Symfony)

Сообщение Anonymous »

Я работаю над своим вторым проектом Symfony и стараюсь следовать лучшим практикам. Я переключился со статических методов на сервисы для улучшения читаемости и потенциального повышения производительности. Например, у меня есть ResponseService, который генерирует объекты JsonResponse из данных базы данных. В моем первом проекте это обрабатывалось статической функцией:

Код: Выделить всё

Responses::getJsonResponse($entityManager, [...])
--> $responseService->getResponse([...])
Мой вопрос: должно ли все, что требует автоматического подключения аргументов и частого использования, стать службой?
Например, у меня есть класс AssessmentCheck, который проверяет разрешения пользователя, обязательные данные формы и т. д. Вот пример метода контроллера:

Код: Выделить всё

#[Route('/ajax/matches/start/', name: 'app_ajax_match_start', methods: ["GET"])]
public function app_ajax_match_start(RequestStack $requestStack, EntityManagerInterface $entityManager): JsonResponse|Response
{
$req = RequirementsCheck::create($requestStack, $entityManager, permissions: [Permission::EDIT_RESULTS], required_types: ["matches" => "array_int"], data_fields: $_GET);
if(!$req->isAllowed()) return $req->getResponse();
// [...]
}
Как видите, я напрямую внедряю $requestStack и $entityManager. Однако создание службы для ТребованияПроверки может улучшить читаемость и, возможно, производительность. Тем не менее, я считаю, что объектно-ориентированный подход может быть более подходящим.
Что вы думаете? Существует ли универсально лучшее решение?
PS: Дайте мне знать, если я могу что-то улучшить в этом посте. Я все еще новичок и, возможно, не следовал всем рекомендациям по выбору лучшего вопроса.
Изменить: вот текущий класс «Проверка требований».

Подробнее здесь: https://stackoverflow.com/questions/783 ... ces-oop-vs
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»