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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky