Skip to content

Commit

Permalink
upd: ru docs
Browse files Browse the repository at this point in the history
  • Loading branch information
yzen-dev committed Feb 2, 2023
1 parent 6cfe6ef commit ea68129
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions README.RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
Эта библиотека позволит вам легко преобразовать любой набор данных в нужный вам объект. От вас не требуется менять структуру классов, наследовать их от внешних модулей и т.д. Никаких танцев с бубнами - только данные и нужный класс.

Хорошей практикой считается написание кода независимого от сторонних пакетов и фреймворков. Код разбивается на сервисы, доменные зоны, различные слои и т.д. Для передачи данных между слоями как правило используются шаблон DataTransfer Object (DTO). DTO - это объект, который используется для инкапсуляции данных и отправки их из одной подсистемы приложения в другую.
Хорошей практикой считается написание кода независимого от сторонних пакетов и фреймворков. Код разбивается на сервисы, доменные зоны, различные слои и т.д. Для передачи данных между слоями, как правило, используется шаблон DataTransfer Object (DTO). DTO - это объект, который необходим для инкапсуляции данных и отправки их из одной подсистемы приложения в другую.

Тем самым сервисы/методы работают с конкретным объектом и данными необходимым для него. При этом не важно откуда эти данные были получены, это может быть http запрос, БД, файл и т.д.
Таким образом, сервисы/методы работают с конкретным объектом и данными необходимым для него. При этом неважно, откуда эти данные были получены - это может быть http запрос, БД, файл и т.д.

Соответственно при каждом вызове сервиса нам необходимо инициализировать данное DTO. Но сопоставлять каждый раз данные в ручную это не эффективно, и сказывается на читабельности кода, особенно если объект сложный.
Соответственно, при каждом вызове сервиса нам необходимо инициализировать данное DTO. Но сопоставлять каждый раз данные вручную - неэффективно, и сказывается на читабельности кода, особенно если объект сложный.

Здесь на помощь приходит данный пакет, который берет на себя всю работу с мапингом и инициализацией необходимой DTO.

Expand Down Expand Up @@ -116,12 +116,11 @@ object(PurchaseDTO)

### :scroll: **Коллекция**

Если у вас есть массив объектов определенного класса, то вы должны указать для него атрибут ConvertArray, передав его в
какой класс вам нужно привести элементы.
Если у вас есть массив объектов определенного класса, то вы должны указать для него атрибут ConvertArray, передав ему в какой класс вам нужно привести элементы.

Также можно указать класс в PHP DOC, но тогда вам нужно написать полный путь к этомуклассу `array <\DTO\ProductDTO>`.
Также можно указать класс в PHP DOC, но тогда вам нужно написать полный путь к этому классу `array <\DTO\ProductDTO>`.
Это делается для того, чтобы точно знать, какой экземпляр нужно создать. Поскольку Reflection не предоставляет готовых
функций для получения файла `use`. Помимо `use`, вы можете указать псевдоним, и его будет сложнее отследить. Пример:
функций для получения файла `use`. Помимо `use`, вы можете указать псевдоним и его будет сложнее отследить. Пример:

```php

Expand All @@ -148,7 +147,7 @@ $purchaseDTO = ClassTransformer::transform(PurchaseDTO::class, $data);

#### :scroll: **Анонимная коллекция**

В случае, если вам нужно преобразовать массив данных в массив объектов класса, вы можете реализовать это с помощью
В случае если вам нужно преобразовать массив данных в массив объектов класса, вы можете реализовать это с помощью
метода `transformCollection`.

```php
Expand All @@ -159,7 +158,7 @@ $data = [
$products = ClassTransformer::transformCollection(ProductDTO::class, $data);
```

В результате этого выполнения вы получите массив объектов ProductDTO
В результате этого вы получите массив объектов ProductDTO

```php
array(2) {
Expand Down

0 comments on commit ea68129

Please sign in to comment.