laravel_modules), making it suitable for microservice-like architectures or monolithic apps with modularized API integrations.laravel_modules for module support; core Laravel suffices for basic use).Resources/config/mapping, enabling runtime flexibility without code changes.Resource class suggests customization points for domain-specific transformations (e.g., nested objects, conditional fields).laravel_modules for full functionality, adding vendor lock-in if not already adopted.laravel_modules? If not, is the overhead justified?spatie/array-to-object, custom transformers) suffice?laravel_modules or similar (e.g., orchid/platform).json_decode + array_to_object).Resources/config/mapping/[module].php (example structure):
return [
'user' => [
'fields' => ['id', 'name', 'email'],
'relations' => ['posts' => 'post'],
],
];
ApiResourceMapperProvider in config/app.php.registerMapper() in module providers (as shown in README).AbstractResource for each module, inject the mapper factory:
public function __construct(ModelMetaFactory $mapperFactory) {
$this->mapper = $mapperFactory->getMapper(app('zingle.foo_module.model_meta_factory'));
}
Http::fake()).Cache::remember) for mapper instances if performance is critical.Log::debug('Mapper output:', $mappedData)).boot() or use Laravel’s singleton bindings.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Malformed API response | Partial/failed serialization | Validate responses early (e.g., json_validate()). |
| Missing mapping config | Silent failures or errors | Default fallbacks or runtime validation. |
| Circular references in data | Infinite loops | Depth limits or ignore_circular flag. |
| Module provider not registered | Broken mapper resolution | Health checks for bound services. |
| High mapper config complexity | Slow parsing | Optimize config structure (e.g., flat arrays). |
AbstractResource.AbstractResource classes.php artisan zingle:mapper:generate to scaffold configs.How can I help you explore Laravel packages today?