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