В настоящее время я разрабатываю REST Api с использованием Slim Framework с Многоуровневая архитектура:
Эксплуатации контроллеров> Сервис-> Repository-> DB
Моя проблема в том, что функция save () на одном из моих сервисов содержит набор сложных функций, которые явно нарушают Принцип разделения ответственности поэтому я сгруппировал функции исходя из их «обязанностей». Вот некоторые из них:
Эти функции не всегда выполняется. Он выполняется в зависимости от данных, передаваемых на сервис, и некоторых функций блоки экономия, если нарушено бизнес-правило. В настоящее время я планирую решить ее с помощью Схема цепочки ответственности
class PropertyController
{
public function saveAction($request, $response, $args)
{
$data = $req->getParsedBody();
$dataValidation = new DataValidation();
$recordLocking = new RecordLocking();
$editHistoryLogging = new EditHistoryLogging();
$destinationDelegation = new DestinationDelegation();
$dataValidation->next($recordLocking);
$recordLocking->next($editHistoryLogging);
$editHistoryLogging->next($destinationDelegation);
$propertyService = new PropertyService(new PropertyEloquentRepository());
$result = $propertyService->save($data, $dataValidation);
return $response->withStatus(200)
->withHeader('Content-Type','application/json')
->write(json_encode($result));
}
}
Это реализация хорошо и считается хорошей практикой?
Задача ещё не решена.
Других решений пока нет …