Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Excel Connector Bundle Laravel Package

akeneo-labs/excel-connector-bundle

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Legacy Dependency: The package is explicitly deprecated and incompatible with Akeneo PIM ≥1.6, requiring a replacement (ExcelInitBundle). This bundle is designed for Akeneo PIM Community Edition (v1.0–1.5), making it a poor fit for modern Laravel/PHP ecosystems unless maintaining a legacy Akeneo instance.
  • Functional Scope: Focuses on Excel (XLSX) import/export for Akeneo PIM, not generic Laravel use cases. Core features include:
    • Catalog structure initialization (families, categories, attributes).
    • Product data import/export via Excel.
    • UI-driven import jobs (Akeneo-specific).
  • Laravel Compatibility: No direct Laravel integration. The bundle is a Symfony bundle tied to Akeneo’s architecture (e.g., AppKernel.php, Doctrine migrations, PIM-specific entities). Laravel’s service container, Eloquent, and Blade templating are incompatible without heavy refactoring.

Integration Feasibility

  • Low Feasibility for Laravel: Requires:
    • Akeneo PIM dependency (v1.5 or earlier), which is a monolithic PHP/Symfony app, not a microservice or Laravel-compatible package.
    • PhpSpreadsheet (v1.8) dependency, which is outdated (current version: v1.29). Modern alternatives like league/csv or spatie/laravel-excel exist.
    • Doctrine ORM integration, conflicting with Laravel’s Eloquent.
  • Workarounds:
    • Extract Core Logic: The AkeneoSpreadsheetParserBundle (dependency) handles Excel parsing. This could be adapted for Laravel, but would require rewriting Akeneo-specific logic (e.g., family/category mapping).
    • API Wrapper: Build a Laravel API to consume Akeneo’s Excel endpoints (if available), but this is indirect and not a "package integration."

Technical Risk

  • High Risk:
    • Deprecation: No active maintenance (last release: 2016). Security vulnerabilities (e.g., PhpExcel’s deprecated functions) and compatibility issues with modern PHP (e.g., PHP 8.x) are likely.
    • Architectural Mismatch: Laravel’s MVC and Akeneo’s PIM-specific layers (e.g., PimExcelConnectorBundle) are fundamentally incompatible without a full rewrite.
    • Dependency Bloat: Pulls in outdated libraries (phpoffice/phpexcel, doctrine/migrations) that may conflict with Laravel’s stack.
  • Mitigations:
    • Isolate in a Service: Containerize Akeneo + this bundle in a separate microservice (e.g., Docker) and communicate via API.
    • Replace with Modern Alternatives: Use Laravel packages like:

Key Questions

  1. Why Laravel?
    • Is the goal to replace Akeneo PIM entirely, or integrate Excel imports into an existing Laravel app? If the latter, this package is not suitable.
  2. Legacy Constraints:
    • Must this bundle work with Akeneo PIM ≤1.5? If so, consider a fork with minimal Laravel compatibility layers (e.g., Symfony Bridge).
  3. Data Model Alignment:
    • How do Laravel’s models (e.g., Eloquent) map to Akeneo’s Family, Category, or Product entities? Manual mapping would be required.
  4. Performance:
    • Akeneo’s Excel imports are optimized for PIM-scale data. Laravel’s smaller scale may not need this complexity.
  5. Maintenance Burden:
    • Who will patch security issues in phpoffice/phpexcel or Akeneo’s deprecated codebase?

Integration Approach

Stack Fit

  • Incompatible with Modern Laravel:
    • Symfony Bundle: Designed for Symfony’s Kernel, dependency injection, and event system. Laravel’s ServiceProvider/Facade system is not interchangeable.
    • Akeneo-Specific:
      • Relies on Pim\Bundle\ExcelConnectorBundle and AkeneoSpreadsheetParserBundle, which are tightly coupled to Akeneo’s entity structure (e.g., Pim\Structure\Family).
      • Uses Akeneo’s job system for imports (e.g., ImportJob entities), which Laravel lacks.
  • Partial Overlap:
    • Excel Parsing: The underlying phpoffice/phpexcel (or AkeneoSpreadsheetParserBundle) could be extracted for Laravel use, but this requires rewriting Akeneo-specific logic.

Migration Path

  1. Assessment Phase:
    • Audit current Excel import/export workflows in Laravel. Document fields, validation rules, and business logic tied to Excel.
    • Compare with Akeneo’s init.xlsx structure to identify gaps (e.g., missing attribute types, custom fields).
  2. Option 1: Replace with Laravel Packages (Recommended):
    • For Excel Parsing:
      • Use spatie/laravel-excel or maatwebsite/excel for imports/exports.
      • Example:
        use Maatwebsite\Excel\Facades\Excel;
        Excel::import(new ProductImport, 'products.xlsx');
        
    • For Data Mapping:
      • Replace Akeneo’s Family/Category logic with Laravel’s Eloquent relationships or custom services.
  3. Option 2: Hybrid Approach (High Risk):
    • Containerized Akeneo Service:
      • Deploy Akeneo PIM (v1.5) + this bundle in a Docker container.
      • Expose a REST API (e.g., using Akeneo’s WebapiBundle) for Laravel to consume.
      • Example:
        $response = Http::post('http://akeneo-service/api/import', [
            'file' => fopen('products.xlsx', 'r'),
        ]);
        
    • Symfony Bridge:
      • Use symfony/bridge to integrate Symfony components into Laravel, but this is complex and unsupported.
  4. Option 3: Fork and Adapt (Not Recommended):
    • Fork the bundle and rewrite:
      • Replace AppKernel.php with Laravel’s ServiceProvider.
      • Replace Doctrine with Eloquent.
      • Remove Akeneo-specific dependencies (e.g., akeneo/pim-community-dev).
    • Effort: 3–6 months for a small team; high risk of breaking functionality.

Compatibility

  • PHP Version: Last tested on PHP 5.6–7.0 (Akeneo PIM 1.5). PHP 8.x may require polyfills or breaking changes.
  • Laravel Version: No compatibility. Even Laravel 5.x’s Symfony components (e.g., HttpKernel) differ from Akeneo’s.
  • Database: Assumes Doctrine ORM. Laravel’s Eloquent would need a custom adapter.
  • Excel Format: Strictly requires .xlsx (not .csv or .ods). Modern Laravel packages support multiple formats.

Sequencing

  1. Phase 1: Proof of Concept (2 weeks)
    • Test the bundle in a fresh Akeneo PIM 1.5 instance to validate Excel import/export workflows.
    • Document all Akeneo-specific dependencies (e.g., Pim\Bundle\ExcelConnectorBundle).
  2. Phase 2: Laravel Alternative (4–8 weeks)
    • Build a prototype using spatie/laravel-excel + custom services to replicate Akeneo’s Excel logic.
    • Example: Map Akeneo’s init.xlsx structure to Laravel’s database schema.
  3. Phase 3: Integration (2–4 weeks)
    • Replace legacy Excel imports in Laravel with the new solution.
    • Write migration scripts to convert Akeneo’s Excel data to Laravel’s format.
  4. Phase 4: Deprecation (Ongoing)
    • Phase out the Akeneo bundle entirely once the Laravel solution is stable.

Operational Impact

Maintenance

  • High Burden:
    • Deprecated Codebase: No updates since 2016. Security patches (e.g., for phpoffice/phpexcel) must be backported manually.
    • Akeneo Dependency: Requires maintaining an outdated Akeneo PIM instance (v1.5) solely for this bundle.
    • Lack of Documentation: Limited to Akeneo-specific guides (e.g., init.xlsx structure). No Laravel-specific troubleshooting.
  • Alternatives:
    • Modern Laravel packages (spatie/laravel-excel) have active maintenance and community support.

Support

  • No Vendor Support:
    • Akeneo Labs has deprecated this bundle. Issues must be resolved
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle