akeneo-labs/spreadsheet-parser-bundle
.xlsx with complex structures).symfony/dependency-injection as a standalone service container).ContainerAwareInterface, which is anti-pattern in modern Laravel (prefer constructor injection or bind()).create_function).return_type_declaration.akeneo-labs/spreadsheet-parser v1.1.x).Maatwebsite\Excel\Concerns\WithCustomCsvSettings suffice?Reader be configured to match this bundle’s API?ContainerAwareInterface support).config.yml vs. Laravel’s config/spreadsheet.php).$parser = new \Akeneo\Bundle\SpreadsheetParserBundle\Parser\SpreadsheetParser();
$spreadsheet = $parser->open('file.xlsx');
Risk: May break if bundle assumes Symfony services.$container = new \Symfony\Component\DependencyInjection\ContainerBuilder();
$container->register('akeneo_spreadsheet_parser.spreadsheet_loader', ...);
Risk: Overhead for a single feature.filesystem to handle file uploads.class SpreadsheetParserService {
public function parse(string $path): array {
$loader = new \Akeneo\Bundle\SpreadsheetParserBundle\Loader\SpreadsheetLoader();
$spreadsheet = $loader->open($path);
// Convert to Laravel-friendly format
return $this->transform($spreadsheet);
}
}
akeneo-labs/spreadsheet-parser to v1.1.2 in composer.json.platform-check to enforce PHP 5.6+ (if possible).composer require --dev phpunit/phpunit ^9
vendor/bin/phpunit --testdox
.xlsx (primary)..xlsm (limited support in v1.1.1).symfony/config (if using Symfony DI).symfony/dependency-injection (if not)..xlsx in a Laravel tinker session.use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = IOFactory::load('file.xlsx');
declare(strict_types=1)).| Scenario | Impact | Mitigation |
|---|---|---|
| PHP 8.x Compatibility | Crashes on strict types | Fork and patch akeneo/spreadsheet-parser |
| Malformed XLSX | Silent failure or errors | Add validation (e.g., try-catch) |
| Large Files (>100MB) | Out-of-memory (OOM) | Switch to PhpSpreadsheet streaming |
| Symfony DI Misconfig | Service not found | Use standalone parser class |
| Dependency Conflicts | Composer install fails | Isolate in extra: installer-types |
How can I help you explore Laravel packages today?