@@ 114-129 (lines=16) @@ | ||
111 | * @param string $extension |
|
112 | * @return DataFormatter |
|
113 | */ |
|
114 | public static function for_extension($extension) |
|
115 | { |
|
116 | $classes = ClassInfo::subclassesFor(DataFormatter::class); |
|
117 | array_shift($classes); |
|
118 | $sortedClasses = array(); |
|
119 | foreach ($classes as $class) { |
|
120 | $sortedClasses[$class] = singleton($class)->stat('priority'); |
|
121 | } |
|
122 | arsort($sortedClasses); |
|
123 | foreach ($sortedClasses as $className => $priority) { |
|
124 | $formatter = new $className(); |
|
125 | if (in_array($extension, $formatter->supportedExtensions())) { |
|
126 | return $formatter; |
|
127 | } |
|
128 | } |
|
129 | } |
|
130 | ||
131 | /** |
|
132 | * Get formatter for the first matching extension. |
|
@@ 154-169 (lines=16) @@ | ||
151 | * @param string $mimeType |
|
152 | * @return DataFormatter |
|
153 | */ |
|
154 | public static function for_mimetype($mimeType) |
|
155 | { |
|
156 | $classes = ClassInfo::subclassesFor(DataFormatter::class); |
|
157 | array_shift($classes); |
|
158 | $sortedClasses = array(); |
|
159 | foreach ($classes as $class) { |
|
160 | $sortedClasses[$class] = singleton($class)->stat('priority'); |
|
161 | } |
|
162 | arsort($sortedClasses); |
|
163 | foreach ($sortedClasses as $className => $priority) { |
|
164 | $formatter = new $className(); |
|
165 | if (in_array($mimeType, $formatter->supportedMimeTypes())) { |
|
166 | return $formatter; |
|
167 | } |
|
168 | } |
|
169 | } |
|
170 | ||
171 | /** |
|
172 | * Get formatter for the first matching mimetype. |