zend-blog-3-backend

Форк
0
/
PygmentsCodeTransformer.php 
64 строки · 1.5 Кб
1
<?php
2

3
namespace App\API\Transformers;
4

5
use App\DTO\PygmentsCodeDTO;
6
use App\Entity\PygmentsCode;
7
use League\Fractal\Resource\ResourceInterface;
8

9
class PygmentsCodeTransformer extends BaseTransformer
10
{
11
    /**
12
     * @var array
13
     */
14
    protected array $availableIncludes = [
15
        'language',
16
    ];
17

18
    /**
19
     * @param PygmentsCode $item
20
     *
21
     * @return array
22
     */
23
    public function transform(PygmentsCode $item)
24
    {
25
        $languageId = null;
26
        if ($item->getLanguage()) {
27
            $languageId = $item->getLanguage()->getId();
28
        }
29

30
        return [
31
            'id' => $item->getId(),
32
            'code' => $item->getSourceCode(),
33
            'html' => $item->getSourceHtml(),
34
            'preview' => $item->getSourceHtmlPreview(),
35
            'language' => $languageId,
36
            'languageId' => $languageId,
37
            'createdAt' => $this->dateTimeToISO($item->getTimeCreated()),
38
        ];
39
    }
40

41
    /**
42
     * @param PygmentsCode $entity
43
     * @param PygmentsCodeDTO $data
44
     */
45
    public static function reverseTransform(PygmentsCode $entity, PygmentsCodeDTO $data)
46
    {
47
        $entity->setSourceCode($data['code']);
48
    }
49

50
    /**
51
     * @param PygmentsCode $entity
52
     *
53
     * @return ResourceInterface
54
     */
55
    public function includeLanguage(PygmentsCode $entity): ResourceInterface
56
    {
57
        $items = [];
58
        if ($entity->getLanguage()) {
59
            $items = [$entity->getLanguage()];
60
        }
61

62
        return $this->collection($items, new PygmentsLanguageTransformer(), 'pygmentsLanguages');
63
    }
64
}
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.