Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 17 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 1 |
MediaListTrait | |
0.00% |
0 / 17 |
|
0.00% |
0 / 4 |
156 | |
0.00% |
0 / 1 |
getFileByType | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
12 | |||
getFileByTypeName | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
12 | |||
getFilesByTypeName | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
12 | |||
hasFileTypeName | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
12 |
1 | <?php |
2 | /** |
3 | * Jingga |
4 | * |
5 | * PHP Version 8.1 |
6 | * |
7 | * @package Modules\Media\Models |
8 | * @copyright Dennis Eichhorn |
9 | * @license OMS License 2.0 |
10 | * @version 1.0.0 |
11 | * @link https://jingga.app |
12 | */ |
13 | declare(strict_types=1); |
14 | |
15 | namespace Modules\Media\Models; |
16 | |
17 | /** |
18 | * Media class. |
19 | * |
20 | * @package Modules\Media\Models |
21 | * @license OMS License 2.0 |
22 | * @link https://jingga.app |
23 | * @since 1.0.0 |
24 | * |
25 | * @property \Modules\Media\Models\Media[] $files |
26 | */ |
27 | trait MediaListTrait |
28 | { |
29 | /** |
30 | * Files. |
31 | * |
32 | * @var Media[] |
33 | * @since 1.0.0 |
34 | */ |
35 | public array $files = []; |
36 | |
37 | /** |
38 | * Get media file by type |
39 | * |
40 | * @param int $type Media type |
41 | * |
42 | * @return Media |
43 | * |
44 | * @since 1.0.0 |
45 | */ |
46 | public function getFileByType(int $type) : Media |
47 | { |
48 | foreach ($this->files as $file) { |
49 | if ($file->hasMediaTypeId($type)) { |
50 | return $file; |
51 | } |
52 | } |
53 | |
54 | return new NullMedia(); |
55 | } |
56 | |
57 | /** |
58 | * Get all media files by type name |
59 | * |
60 | * @param string $type Media type |
61 | * |
62 | * @return Media |
63 | * |
64 | * @since 1.0.0 |
65 | */ |
66 | public function getFileByTypeName(string $type) : Media |
67 | { |
68 | foreach ($this->files as $file) { |
69 | if ($file->hasMediaTypeName($type)) { |
70 | return $file; |
71 | } |
72 | } |
73 | |
74 | return new NullMedia(); |
75 | } |
76 | |
77 | /** |
78 | * Get all media files by type name |
79 | * |
80 | * @param string $type Media type |
81 | * |
82 | * @return Media[] |
83 | * |
84 | * @since 1.0.0 |
85 | */ |
86 | public function getFilesByTypeName(string $type) : array |
87 | { |
88 | $files = []; |
89 | foreach ($this->files as $file) { |
90 | if ($file->hasMediaTypeName($type)) { |
91 | $files[] = $file; |
92 | } |
93 | } |
94 | |
95 | return $files; |
96 | } |
97 | |
98 | /** |
99 | * Check if file with a certain type name exists |
100 | * |
101 | * @param string $type Type name |
102 | * |
103 | * @return bool |
104 | * |
105 | * @since 1.0.0 |
106 | */ |
107 | public function hasFileTypeName(string $type) : bool |
108 | { |
109 | foreach ($this->files as $file) { |
110 | if ($file->hasMediaTypeName($type)) { |
111 | return true; |
112 | } |
113 | } |
114 | |
115 | return false; |
116 | } |
117 | } |