| @@ 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. | |