zend-blog-3-backend
79 строк · 2.0 Кб
1<?php
2/**
3* Created by PhpStorm.
4* User: morontt
5* Date: 04.04.16
6* Time: 22:50
7*/
8
9namespace App\API\Transformers;
10
11use App\Entity\MediaFile;
12use App\Model\Image;
13use App\Service\ImageManager;
14use League\Fractal\Resource\ResourceInterface;
15
16class MediaFileTransformer extends BaseTransformer
17{
18/**
19* @var array
20*/
21protected array $availableIncludes = [
22'post',
23];
24
25/**
26* @param Image $item
27*
28* @return array
29*/
30public function transform(Image $item)
31{
32$post = $item->getPost();
33$postId = $post ? $post->getId() : null;
34
35return [
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*/
56public 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*/
69public function includePost(Image $item): ResourceInterface
70{
71$items = [];
72$post = $item->getPost();
73if ($post) {
74$items = [$post];
75}
76
77return $this->collection($items, new PostTransformer(), 'posts');
78}
79}
80