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

Extension Starter Laravel Package

akeneo-labs/extension-starter

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Target Use Case: This package is explicitly designed for Akeneo PIM (Product Information Management) extensions, not a generic Laravel/PHP tool. It provides a starter scaffold for building custom Akeneo extensions (e.g., connectors, attribute types, or UI extensions).
  • Laravel Compatibility: While Akeneo PIM is built on Symfony (not Laravel), the underlying architecture leverages Symfony bundles, Doctrine ORM, and PSR-4 autoloading, which are partially compatible with Laravel’s ecosystem (e.g., via Symfony bridge packages like symfony/console or symfony/dependency-injection).
  • Key Components:
    • Bundle Structure: Follows Symfony’s Bundle pattern (*Bundle.php, DependencyInjection/*Extension.php).
    • Composer Integration: Uses composer.json for dependencies and autoloading.
    • Akeneo-Specific Features: Assumes Akeneo’s entity structure (e.g., Product, Attribute, Family) and extension hooks (e.g., app/AppKernel.php registration).

Integration Feasibility

  • For Akeneo PIM Projects:
    • High feasibility if extending Akeneo’s functionality (e.g., custom connectors, attribute types, or UI widgets).
    • Low feasibility for generic Laravel applications (Akeneo is a monolithic PIM, not a modular microservice).
  • For Laravel Projects:
    • Possible but limited: Could be adapted for Symfony/Laravel hybrid projects (e.g., if using laravel/symfony bridge packages), but requires manual refactoring to align with Laravel’s service container, routing, and middleware.
    • Not recommended for pure Laravel apps due to Akeneo’s tight coupling with Symfony components (e.g., Akeneo\Tool\Component).

Technical Risk

Risk Area Assessment
Deprecation Risk High: Last release in 2016 (Akeneo PIM has evolved significantly since then). May require major refactoring to work with newer Akeneo versions (e.g., 5.x/6.x).
Symfony vs. Laravel Medium: Symfony bundles are not natively Laravel-compatible. Requires custom glue code (e.g., service providers, kernel overrides) to integrate with Laravel’s ecosystem.
Documentation Gap High: Outdated docs (e.g., references Akeneo 1.5/1.6). No guidance for modern Akeneo (4.x+) or Laravel integration.
Dependency Conflicts Medium: Relies on akeneo/pim-community-dev (abandoned) and doctrine/migrations. May conflict with Laravel’s illuminate/container or laravel/framework.
Testing High: No tests provided. Assumes Akeneo’s specific environment (e.g., app/AppKernel.php).

Key Questions

  1. Is this for Akeneo PIM or Laravel?
    • If Akeneo: Proceed with caution (check compatibility with target Akeneo version).
    • If Laravel: Evaluate whether Symfony bundle patterns are worth the integration effort.
  2. What’s the target Akeneo version?
    • Original package supports 1.5–1.6; modern Akeneo (5.x+) may require full rewrite.
  3. Are there modern alternatives?
  4. What’s the migration path?
    • For Akeneo: Can this be forked and updated for newer versions?
    • For Laravel: Would a custom Symfony bundle wrapper (e.g., using symfony/console as a service) be viable?
  5. Who maintains this?
    • Last release 7 years ago; no active community. Risk of unresolved bugs or missing features.

Integration Approach

Stack Fit

Component Fit Level Notes
Akeneo PIM High Designed for Akeneo’s Symfony-based architecture. Follows Akeneo’s bundle extension pattern.
Laravel Low Not natively compatible. Would require Symfony bridge packages (e.g., symfony/console, symfony/dependency-injection) and custom service providers to integrate with Laravel’s container.
PHP 8.x Low Original package targets PHP 5.6–7.1. May need BC breaks for modern PHP.
Composer Medium Uses composer.json for dependencies, but relies on Akeneo-specific packages (e.g., akeneo/pim-community-dev) that are deprecated.
Doctrine ORM High Akeneo uses Doctrine; Laravel also supports Doctrine via doctrine/dbal/doctrine/orm. Potential conflict with Laravel’s Eloquent.

Migration Path

Option 1: Akeneo PIM Extension (Recommended for Akeneo Projects)

  1. Fork and Update:
    • Clone the repo and update dependencies to match target Akeneo version (e.g., 5.x).
    • Replace akeneo/pim-community-dev with official Akeneo SDK or akeneo/pim-enterprise-standard.
  2. Refactor for Modern Akeneo:
    • Update bundle structure to match Akeneo 5.x+ (e.g., src/Akeneo/Extension/ instead of src/Company/Bundle/).
    • Replace deprecated Doctrine migrations with Akeneo’s database schema tools.
  3. Test Integration:

Option 2: Laravel Integration (High Effort)

  1. Symfony Bridge Setup:
    • Install symfony/console, symfony/dependency-injection, and symfony/http-kernel.
    • Create a custom Kernel class to load the Akeneo bundle alongside Laravel’s.
  2. Service Provider Adaptation:
    • Extend Laravel’s ServiceProvider to register Akeneo’s bundle in the container.
    • Override Akeneo’s DI configuration to work with Laravel’s autowiring.
  3. Routing Middleware:
    • Use Laravel’s middleware groups to proxy Akeneo routes (if needed).
    • Example: Route Akeneo’s /admin to a Symfony Router instance.
  4. Database Layer:
    • Decide between:
      • Shared Doctrine DBAL: Configure Laravel to use Akeneo’s Doctrine connection.
      • Separate Databases: Use Laravel’s Eloquent for app logic and Doctrine for Akeneo.

Option 3: Abandon and Use Modern Alternatives

Compatibility

Constraint Compatibility Level Workaround
Akeneo Version Low Must manually update for versions >1.6. Consider forking and maintaining a patched version.
Laravel Framework Low Requires Symfony bridge and manual DI configuration. Not plug-and-play.
PHP 8.x Low May need deprecation fixes (e.g., array()[], foreach changes).
Composer Dependencies Medium Replace akeneo/pim-community-dev with modern Akeneo packages or API clients.
Doctrine ORM Medium Conflict with Eloquent. Use DBAL for shared DB access or separate connections.

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.
emuniq/filament-browser-notifications
syriable/filament-translator
hungnm28/livewire-form
wenprise/eloquent
crudly/encrypted
fadion/bouncy
cuci/prototurk-sdk
gos/pubsub-router-bundle
cuci/prototurk-sdk-symfony
clementtalleu/easyadmin-markdown-bundle
codeflextech/permission-manager
karnoweb/livewire-datepicker
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui