zend-blog-3-backend
358 строк · 5.9 Кб
1<?php
2/**
3* Created by PhpStorm.
4* User: morontt
5* Date: 03.04.16
6* Time: 23:21
7*/
8
9namespace App\Entity;
10
11use App\Entity\Traits\ModifyEntityTrait;
12use DateTime;
13use Doctrine\ORM\Mapping as ORM;
14
15/**
16* @ORM\Table()
17* @ORM\Entity(repositoryClass="App\Repository\MediaFileRepository")
18* @ORM\HasLifecycleCallbacks()
19*/
20class MediaFile
21{
22use ModifyEntityTrait;
23
24/**
25* @var int
26*
27* @ORM\Id
28* @ORM\Column(type="integer")
29* @ORM\GeneratedValue(strategy="AUTO")
30*/
31protected $id;
32
33/**
34* @var Post
35*
36* @ORM\ManyToOne(targetEntity="Post", inversedBy="mediaFiles")
37* @ORM\JoinColumn(onDelete="SET NULL", nullable=true)
38*/
39protected $post;
40
41/**
42* @var string
43*
44* @ORM\Column(type="string", unique=true)
45*/
46protected $path;
47
48/**
49* @var string
50*
51* @ORM\Column(type="string", nullable=true)
52*/
53protected $description;
54
55/**
56* @var int
57*
58* @ORM\Column(type="integer")
59*/
60protected $fileSize;
61
62/**
63* @var bool
64*
65* @ORM\Column(type="boolean")
66*/
67protected $defaultImage = false;
68
69/**
70* @var bool
71*
72* @ORM\Column(type="boolean")
73*/
74protected $backedUp = false;
75
76/**
77* @var int|null
78*
79* @ORM\Column(type="smallint", nullable=true, options={"unsigned": true})
80*/
81private $width;
82
83/**
84* @var int|null
85*
86* @ORM\Column(type="smallint", nullable=true, options={"unsigned": true})
87*/
88private $height;
89
90/**
91* @var string|null
92*
93* @ORM\Column(type="text", length=65535, nullable=true)
94*/
95private $pictureTag;
96
97/**
98* @var string|null
99*
100* @ORM\Column(type="text", length=65535, nullable=true)
101*/
102private $srcSet;
103
104public function __construct()
105{
106$this->timeCreated = new DateTime();
107}
108
109/**
110* Get id
111*
112* @return int|null
113*/
114public function getId(): ?int
115{
116return $this->id;
117}
118
119/**
120* Set path
121*
122* @param string $path
123*
124* @return MediaFile
125*/
126public function setPath(string $path): MediaFile
127{
128$this->path = $path;
129
130return $this;
131}
132
133/**
134* Get path
135*
136* @return string
137*/
138public function getPath(): string
139{
140return $this->path;
141}
142
143/**
144* @return string
145*/
146public function getOriginalFileName(): string
147{
148return pathinfo($this->path, PATHINFO_BASENAME);
149}
150
151/**
152* @return bool
153*/
154public function isImage(): bool
155{
156if (!$this->path) {
157return false;
158}
159
160return in_array(strtolower(pathinfo($this->path, PATHINFO_EXTENSION)), ['png', 'jpeg', 'jpg', 'gif']);
161}
162
163/**
164* Set post
165*
166* @param Post|null $post
167*
168* @return MediaFile
169*/
170public function setPost(Post $post = null): MediaFile
171{
172$this->post = $post;
173
174return $this;
175}
176
177/**
178* Get post
179*
180* @return Post
181*/
182public function getPost(): ?Post
183{
184return $this->post;
185}
186
187/**
188* Set description
189*
190* @param string|null $description
191*
192* @return MediaFile
193*/
194public function setDescription(string $description = null): MediaFile
195{
196$this->description = $description;
197
198return $this;
199}
200
201/**
202* Get description
203*
204* @return string
205*/
206public function getDescription(): ?string
207{
208return $this->description;
209}
210
211/**
212* Set fileSize
213*
214* @param int $fileSize
215*
216* @return MediaFile
217*/
218public function setFileSize(int $fileSize): MediaFile
219{
220$this->fileSize = $fileSize;
221
222return $this;
223}
224
225/**
226* Get fileSize
227*
228* @return int
229*/
230public function getFileSize(): int
231{
232return $this->fileSize;
233}
234
235/**
236* Set defaultImage
237*
238* @param bool $defaultImage
239*
240* @return MediaFile
241*/
242public function setDefaultImage(bool $defaultImage): MediaFile
243{
244$this->defaultImage = $defaultImage;
245
246return $this;
247}
248
249/**
250* Is defaultImage
251*
252* @return bool
253*/
254public function isDefaultImage(): bool
255{
256return $this->defaultImage;
257}
258
259/**
260* @return bool
261*/
262public function isBackedUp(): bool
263{
264return $this->backedUp;
265}
266
267/**
268* @param bool $backedUp
269*
270* @return $this
271*/
272public function setBackedUp(bool $backedUp): MediaFile
273{
274$this->backedUp = $backedUp;
275
276return $this;
277}
278
279/**
280* @return int|null
281*/
282public function getWidth(): ?int
283{
284return $this->width;
285}
286
287/**
288* @param int|null $width
289*
290* @return MediaFile
291*/
292public function setWidth(?int $width): MediaFile
293{
294$this->width = $width;
295
296return $this;
297}
298
299/**
300* @return int|null
301*/
302public function getHeight(): ?int
303{
304return $this->height;
305}
306
307/**
308* @param int|null $height
309*
310* @return MediaFile
311*/
312public function setHeight(?int $height): MediaFile
313{
314$this->height = $height;
315
316return $this;
317}
318
319/**
320* @return string|null
321*/
322public function getPictureTag(): ?string
323{
324return $this->pictureTag;
325}
326
327/**
328* @param string|null $pictureTag
329*
330* @return MediaFile
331*/
332public function setPictureTag(?string $pictureTag): MediaFile
333{
334$this->pictureTag = $pictureTag;
335
336return $this;
337}
338
339/**
340* @return string|null
341*/
342public function getSrcSet(): ?string
343{
344return $this->srcSet;
345}
346
347/**
348* @param string|null $srcSet
349*
350* @return MediaFile
351*/
352public function setSrcSet(?string $srcSet): MediaFile
353{
354$this->srcSet = $srcSet;
355
356return $this;
357}
358}
359