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