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

Extended Attribute Type Laravel Package

akeneo/extended-attribute-type

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Purpose Alignment: The akeneo/extended-attribute-type package extends Akeneo PIM’s native attribute types by introducing TextCollection, enabling ordered string/URL collections. This aligns with use cases requiring structured, multi-value attributes (e.g., FAQs, ingredient lists, or dynamic metadata).
  • Akeneo Ecosystem Lock-in: Tightly coupled to Akeneo PIM (CE/EE), limiting flexibility for non-Akeneo PHP/Laravel projects. Only viable if:
    • The product is built on Akeneo PIM.
    • The team is committed to Akeneo’s architecture (Symfony, Elasticsearch, Doctrine).
  • Data Model Impact: Introduces schema changes (Elasticsearch index updates) and requires migration of existing data if adopted post-installation.

Integration Feasibility

  • Symfony/Laravel Compatibility:
    • Laravel: Low feasibility—Akeneo is a Symfony-based monolith; Laravel’s Eloquent/Query Builder lacks Akeneo’s dependency on Doctrine ORM, Elasticsearch, and Akeneo’s event system. Direct integration would require:
      • A custom Symfony microkernel or bridge (e.g., Laravel Symfony Bridge).
      • Reimplementing Akeneo’s attribute system in Laravel (high effort).
    • Symfony: High feasibility—Designed for Akeneo PIM (Symfony 3.x/4.x), with minimal friction for existing Akeneo projects.
  • Elasticsearch Dependency: Mandatory for Akeneo’s search functionality. Laravel projects using Algolia/Meilisearch would need a parallel Elasticsearch instance or a rewrite.

Technical Risk

Risk Area Severity (1–5) Mitigation Strategy
Akeneo-Specific Code 5 Avoid unless Akeneo is core to the product.
Elasticsearch Schema 4 Test index migrations thoroughly; backup data.
Deprecated Package 3 Last release in 2018; risk of compatibility breaks.
Laravel Integration 5 Not recommended without significant refactoring.
Data Migration 4 Plan for downtime if adopting on live systems.

Key Questions

  1. Is Akeneo PIM the foundation of the product?
    • If no, evaluate alternatives (e.g., custom Laravel models for collections).
    • If yes, assess whether the TextCollection use case justifies the Akeneo dependency.
  2. What’s the Elasticsearch strategy?
    • Can the team maintain dual Elasticsearch/Laravel search layers?
    • Is Algolia/Meilisearch an option to avoid Elasticsearch lock-in?
  3. Is the package’s age a concern?
    • Has Akeneo PIM v2.2+ evolved incompatibly since 2018?
    • Are there maintained forks or Akeneo’s own solutions (e.g., Akeneo PIM Enterprise extensions)?
  4. What’s the migration path for existing data?
    • Can akeneo:elasticsearch:reset-indexes handle large datasets without data loss?
  5. Are there Laravel-native alternatives?

Integration Approach

Stack Fit

Component Fit Level Notes
Akeneo PIM (CE/EE) Native Zero-config for Akeneo projects; follows Akeneo’s bundle architecture.
Symfony Native Designed for Symfony; minimal setup (bundle registration).
Laravel Poor Requires Symfony bridge or rewrite; not recommended.
Elasticsearch Mandatory Akeneo’s search relies on it; no Laravel-compatible workaround.
Doctrine ORM Mandatory Akeneo uses Doctrine; Laravel’s Eloquent is incompatible.

Migration Path

For Akeneo PIM Projects

  1. Fresh Install:
    • Composer install (akeneo/extended-attribute-type:2.1).
    • Register bundle in AppKernel.php.
    • Update elasticsearch_index_configuration_files in pim_parameters.yml.
    • Run standard Akeneo setup (bin/console akeneo:install).
  2. Existing Akeneo PIM:
    • Backup Elasticsearch indexes and database.
    • Clear cache: php bin/console cache:clear --no-warmup --env=prod.
    • Reset indexes: php bin/console akeneo:elasticsearch:reset-indexes --env=prod.
    • Reindex products: php bin/console pim:product:index --all --env=prod.
    • Test TextCollection attributes in the UI.

For Laravel Projects

  • Option 1: Abandon Akeneo
    • Replace with Laravel models using:
      • JSON columns ($table->json('text_collection')->nullable()).
      • Pivot tables for ordered collections.
      • Packages like spatie/laravel-collection.
  • Option 2: Hybrid Symfony/Laravel
    • Use Laravel Symfony Bridge to embed Akeneo’s bundle in a Laravel app.
    • Risk: High complexity; potential for version conflicts.

Compatibility

  • Akeneo PIM Versions:
    • Bundle v2.1.* → Akeneo PIM CE/EE v2.2+.
    • Bundle v2.0.* → Akeneo PIM v2.0–2.1.
    • Bundle v1.1.* → Akeneo PIM v1.7.
  • PHP Version: Implicitly tied to Akeneo’s PHP version (likely 7.1–7.4 for v2.x).
  • Elasticsearch: Must match Akeneo’s version (typically 7.x for PIM v2.x).

Sequencing

  1. Pre-Integration:
    • Audit Akeneo PIM version compatibility.
    • Test Elasticsearch index reset on a staging environment.
  2. Integration:
    • Deploy bundle and update configs.
    • Migrate data (if applicable).
  3. Post-Integration:
    • Validate TextCollection attributes in UI/admin.
    • Load-test Elasticsearch with new index mappings.

Operational Impact

Maintenance

  • Bundle Updates:
    • Low priority: Last release in 2018; no active maintenance.
    • Forking: Consider forking and maintaining the repo if critical.
  • Akeneo Dependencies:
  • Elasticsearch:
    • Index management becomes more complex with additional mappings.
    • Backup indexes pre-migration.

Support

  • Community Support:
    • Limited activity (22 stars, last release 5+ years ago).
    • Issues may require Akeneo Enterprise support (if using EE).
  • Debugging:
    • Akeneo-specific error messages (e.g., Elasticsearch mapping failures).
    • Symfony profiler tools (_profiler) for bundle debugging.
  • Laravel Workarounds:
    • No official support; community-driven solutions only.

Scaling

  • Performance:
    • TextCollection: Elasticsearch queries may slow with large collections (test size limits).
    • Indexing: Reindexing (pim:product:index) can be resource-intensive.
  • Horizontal Scaling:
    • Elasticsearch nodes must scale with product data volume.
    • Akeneo’s Symfony monolith may not scale as efficiently as Laravel’s micro-service-friendly architecture.
  • Database:
    • Doctrine ORM may require tuning for large attribute sets.

Failure Modes

Scenario Impact Mitigation
Elasticsearch index corruption Product search breaks Regular backups; test resets.
Akeneo upgrade incompatibility Bundle fails to load Isolate bundle in a Docker container.
TextCollection data loss Migration fails Backup pre-migration.
Symfony/Laravel conflict App crashes Avoid hybrid setups; use Laravel-native solutions.
Deprecated PHP versions Security vulnerabilities Upgrade Akeneo or fork the bundle.

Ramp-Up

  • Team Skills:
    • Required: Symfony, Doctrine, Elasticsearch, Akeneo PIM.
    • **L
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
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
spatie/mailcoach-vapor