| @@ 156-180 (lines=25) @@ | ||
| 153 | * |
|
| 154 | * @return BaseDatapackage::class |
|
| 155 | */ |
|
| 156 | public static function getDatapackageClass($descriptor) |
|
| 157 | { |
|
| 158 | $datapackageClasses = array_merge( |
|
| 159 | // custom classes |
|
| 160 | static::$registeredDatapackageClasses, |
|
| 161 | // core classes |
|
| 162 | [ |
|
| 163 | "frictionlessdata\\datapackage\\Datapackages\TabularDatapackage", |
|
| 164 | "frictionlessdata\\datapackage\\Datapackages\DefaultDatapackage", |
|
| 165 | ] |
|
| 166 | ); |
|
| 167 | $res = null; |
|
| 168 | foreach ($datapackageClasses as $datapackageClass) { |
|
| 169 | if (call_user_func([$datapackageClass, 'handlesDescriptor'], $descriptor)) { |
|
| 170 | $res = $datapackageClass; |
|
| 171 | break; |
|
| 172 | } |
|
| 173 | } |
|
| 174 | if (!$res) { |
|
| 175 | // not matched by any known classes |
|
| 176 | $res = "frictionlessdata\\datapackage\\Datapackages\CustomDatapackage"; |
|
| 177 | } |
|
| 178 | ||
| 179 | return $res; |
|
| 180 | } |
|
| 181 | ||
| 182 | public static function registerResourceClass($resourceClass) |
|
| 183 | { |
|
| @@ 197-222 (lines=26) @@ | ||
| 194 | * |
|
| 195 | * @return BaseResource::class |
|
| 196 | */ |
|
| 197 | public static function getResourceClass($descriptor) |
|
| 198 | { |
|
| 199 | $descriptor = Utils::objectify($descriptor); |
|
| 200 | $resourceClasses = array_merge( |
|
| 201 | // custom classes |
|
| 202 | static::$registeredResourceClasses, |
|
| 203 | // core classes |
|
| 204 | [ |
|
| 205 | 'frictionlessdata\\datapackage\\Resources\\TabularResource', |
|
| 206 | 'frictionlessdata\\datapackage\\Resources\\DefaultResource', |
|
| 207 | ] |
|
| 208 | ); |
|
| 209 | $res = null; |
|
| 210 | foreach ($resourceClasses as $resourceClass) { |
|
| 211 | if (call_user_func([$resourceClass, 'handlesDescriptor'], $descriptor)) { |
|
| 212 | $res = $resourceClass; |
|
| 213 | break; |
|
| 214 | } |
|
| 215 | } |
|
| 216 | if (!$res) { |
|
| 217 | // not matched by any known classes |
|
| 218 | $res = 'frictionlessdata\\datapackage\\Resources\\CustomResource'; |
|
| 219 | } |
|
| 220 | ||
| 221 | return $res; |
|
| 222 | } |
|
| 223 | ||
| 224 | protected static $registeredDatapackageClasses = []; |
|
| 225 | protected static $registeredResourceClasses = []; |
|