zend-blog-3-backend

Форк
0
/
MediaFileTransformer.php 
79 строк · 2.0 Кб
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: morontt
5
 * Date: 04.04.16
6
 * Time: 22:50
7
 */
8

9
namespace App\API\Transformers;
10

11
use App\Entity\MediaFile;
12
use App\Model\Image;
13
use App\Service\ImageManager;
14
use League\Fractal\Resource\ResourceInterface;
15

16
class MediaFileTransformer extends BaseTransformer
17
{
18
    /**
19
     * @var array
20
     */
21
    protected array $availableIncludes = [
22
        'post',
23
    ];
24

25
    /**
26
     * @param Image $item
27
     *
28
     * @return array
29
     */
30
    public function transform(Image $item)
31
    {
32
        $post = $item->getPost();
33
        $postId = $post ? $post->getId() : null;
34

35
        return [
36
            'id' => $item->getId(),
37
            'path' => ImageManager::getImageBasePath() . '/' . $item->getPath(),
38
            'preview' => ImageManager::getImageBasePath() . '/' . $item->getPreview('admin_list'),
39
            'originalFilename' => $item->getOriginalFileName(),
40
            'fileSize' => $item->getFileSize(),
41
            'description' => $item->getDescription(),
42
            'timeCreated' => $this->dateTimeToISO($item->getTimeCreated()),
43
            'lastUpdate' => $this->dateTimeToISO($item->getLastUpdate()),
44
            'post' => $postId,
45
            'postId' => $postId,
46
            'defaultImage' => $item->isDefaultImage(),
47
            'width' => $item->getWidth(),
48
            'height' => $item->getHeight(),
49
        ];
50
    }
51

52
    /**
53
     * @param MediaFile $entity
54
     * @param array $data
55
     */
56
    public static function reverseTransform(MediaFile $entity, array $data)
57
    {
58
        $entity
59
            ->setDescription($data['description'])
60
            ->setDefaultImage($data['defaultImage'])
61
        ;
62
    }
63

64
    /**
65
     * @param Image $item
66
     *
67
     * @return ResourceInterface
68
     */
69
    public function includePost(Image $item): ResourceInterface
70
    {
71
        $items = [];
72
        $post = $item->getPost();
73
        if ($post) {
74
            $items = [$post];
75
        }
76

77
        return $this->collection($items, new PostTransformer(), 'posts');
78
    }
79
}
80

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

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

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

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