Update DTO
12
DTO.md
12
DTO.md
@@ -68,7 +68,7 @@ if (!$errors->count()) {
|
||||
```
|
||||
|
||||
При таком сценарии firstName всегда должен быть устанолен, если мы хотим сделать его
|
||||
обязательным при создании, но опциональным при обвлении, выход либо создать 2 `dto` `Createpayload` и `UpdatePayload`
|
||||
обязательным при создании, но опциональным при обновлении, выход либо создать 2 `dto` `Createpayload` и `UpdatePayload`
|
||||
или обойтись группами при валидации
|
||||
```php
|
||||
<?php
|
||||
@@ -180,7 +180,7 @@ $partnerService->update($partner, $payload, ['firstName']) // мы устано
|
||||
|
||||
```
|
||||
|
||||
Несколько замечения, обычно их поля делают публичными, и избегают геттеров и сеттеров
|
||||
Несколько замечаний, обычно их поля делают публичными, и избегают геттеров и сеттеров
|
||||
это справедливо и тут но в пыхах более старших версий, где можно атрибутам класса
|
||||
назначить тип. В нашем случае геттеры и сеттеры могут быть полезны при
|
||||
десериализации из json, дефолтный сериализатор их использует
|
||||
@@ -209,8 +209,8 @@ $partnerService->update($partner, $payload, ['firstName']) // мы устано
|
||||
AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT => true,
|
||||
]);
|
||||
|
||||
// в данном случае отработает сеттре, если его не будет то запишется
|
||||
// строка. Nут уже если требуется проверка поможет пост валидация(запустить валидатор после десериализации)
|
||||
// в данном случае отработает сеттер, если его не будет то запишется
|
||||
// строка. Тут уже если требуется проверка поможет пост валидация(запустить валидатор после десериализации)
|
||||
// или делать поле приватным от сделать геттер, что бы строго ограничить типы и словить эксепшен
|
||||
|
||||
class Payload {
|
||||
@@ -268,6 +268,6 @@ class CloseLeadPartnerServiceTest extends KernelTestCase
|
||||
|
||||
> `WebTestCase` - тут доступен http клиент, делать запросы как из браузера, чекать роуты и выхлоп роутов (например чекнуть что все роуты наши выдают валидный json)
|
||||
|
||||
**p.s** почему не использовать обычный json, потому что никто кроме разраба, что писал этот код
|
||||
не иммет представления что там должно быть в json, как именуются поля и приходится
|
||||
**p.s** почему не использовать обычный json, потому что никто кроме разраба, кто писал этот код
|
||||
не иммет представления, что там должно быть в json, как именуются поля и приходится
|
||||
лезть в код и разбираться в чужом.
|
||||
Reference in New Issue
Block a user