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

Delivery Transport Laravel Package

baks-dev/delivery-transport

Symfony/PHP 8.4+ module for managing a delivery vehicle fleet used for order delivery. Install via Composer, optionally install assets, generate/apply Doctrine migrations, and run the package’s PHPUnit tests (group: delivery-transport).

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Symfony Bundle in Laravel: The package is a Symfony bundle, introducing tight coupling with Symfony’s Console, Doctrine ORM, and Dependency Injection (DI). Laravel’s native Eloquent ORM and Artisan CLI will require significant abstraction layers (e.g., Doctrine-to-Eloquent bridges, custom command wrappers). This increases complexity and maintenance overhead.
  • Domain Alignment: The package excels at vehicle fleet management (inventory, assignments, statuses) but lacks end-to-end delivery workflows (routing, driver apps, IoT). It’s ideal for order-to-vehicle assignment but not for full logistics automation.
  • Extensibility: The package provides no public API for customization, forcing forking or internal method overrides. This is risky given its abandoned state (no updates since 2026, 0 stars).
  • PHP 8.4+ Constraints: While modern, this may conflict with Laravel’s backward-compatible approach, especially if using named arguments or attributes in critical paths.

Integration Feasibility

  • Symfony-Laravel Bridge:
    • Doctrine ORM: Laravel’s Eloquent is incompatible. Solutions:
      1. DoctrineBundle for Laravel (e.g., fruitcake/laravel-doctrine).
      2. Hybrid Schema: Use Doctrine for transport module, Eloquent for core.
      3. Manual Migration: Convert Doctrine entities to Eloquent models (high effort).
    • Console Commands: Symfony’s Console must be proxied via Artisan (e.g., Artisan::call('baks:assets:install')), requiring custom command handlers.
    • Event System: Symfony’s EventDispatcher needs mapping to Laravel Events (e.g., SymfonyEvents::dispatch() wrapper).
  • Database Schema:
    • Migrations: Doctrine migrations won’t work natively in Laravel. Options:
      • Manual Conversion: Rewrite as Eloquent migrations.
      • Dual-Write: Maintain both Doctrine and Eloquent schemas (complex).
    • Database Support: Assumes PostgreSQL/MySQL; no SQLite or alternative DB compatibility.
  • Testing:
    • PHPUnit tests are Symfony-specific (group delivery-transport). Requires:
      • Custom Test Wrappers for Laravel compatibility.
      • Extended Test Coverage for integration points (e.g., Doctrine-Eloquent sync).

Technical Risk

Risk Area Severity Mitigation Notes
Abandonware Critical Fork immediately; plan for replacement. Last release: 2026-07-08; 0 stars.
Symfony-Laravel Gap High Isolate in a separate service or wrapper. Avoid monolithic integration.
Migration Conflicts Medium Test schema changes in staging. No new migrations, but Doctrine risks.
Undocumented APIs Medium Assume internal methods may break. Russian docs; no English reference.
PHP 8.4 Features Low Backport if Laravel lags. Named args/attributes may cause issues.
Localization Low Add i18n layer for docs. Russian-only; no translations.
Performance Overhead Medium Benchmark Doctrine vs. Eloquent. Dual-ORM may impact query performance.

Key Questions

  1. Is the package’s abandonment risk acceptable?
    • No: Evaluate custom Laravel solution or alternatives (e.g., spatie/laravel-model-states).
    • Yes: Proceed with forking and isolation.
  2. Can the team maintain a Symfony sub-project long-term?
    • Requires Symfony expertise (bundles, DI, Console).
  3. What’s the fallback if Doctrine/Eloquent conflicts arise?
    • Options: Hybrid ORM, manual data mapping, or reimplement in Eloquent.
  4. Are there critical features missing?
    • Example: No mobile driver app support, no advanced routing.
  5. How will testing be handled?
    • Need to extend PHPUnit tests for Laravel compatibility.
  6. What’s the data migration strategy?
    • Option A: Convert Doctrine schema to Eloquent.
    • Option B: Dual-write to both ORMs.
  7. Is the MIT license acceptable for production?
    • Yes, but abandonware voids implicit support.
  8. Will this package slow down future Laravel upgrades?
    • Symfony dependencies may block Laravel version updates.

Integration Approach

Stack Fit

  • Ideal Use Cases:
    • Laravel projects with Symfony tolerance (e.g., API-heavy apps using Symfony components).
    • Teams with Symfony experience willing to maintain a sub-project.
    • Internal tools where speed of deployment outweighs long-term risks.
  • Poor Fit:
    • Pure Laravel projects without Symfony tolerance.
    • Teams lacking DevOps resources for dual-stack maintenance.
    • Projects needing real-time routing or IoT integration.
  • Alternatives to Consider:
    • Custom Laravel Models: Build lightweight vehicle/driver models with Eloquent + queues.
    • Headless Approach: Use the package only for migrations and rebuild logic in Laravel (e.g., spatie/laravel-model-states for vehicle statuses).
    • Actively Maintained Packages: E.g., spatie/laravel-activitylog for auditing, laravel-geo for location-based features.

Migration Path

  1. Assessment Phase (1–2 Weeks):
    • Staging Environment: Install the package in a Symfony-compatible Laravel setup (e.g., using fruitcake/laravel-doctrine).
    • Test Core Features:
      • Run php bin/console baks:assets:install (via Artisan proxy).
      • Execute migrations (doctrine:migrations:diff → manual conversion to Eloquent).
      • Test vehicle CRUD operations.
    • Document Undocumented Behaviors: Assume internal methods may break.
  2. Isolation Strategy (Recommended):
    • Option A: Symfony Micro-Service (Lowest Risk):
      • Deploy the bundle as a separate Symfony API (e.g., /api/transport).
      • Use Laravel’s HTTP client (e.g., Guzzle) to interact with Symfony endpoints.
      • Pros: Clean separation, easier maintenance.
      • Cons: Network overhead, eventual consistency.
    • Option B: Laravel Wrapper (High Risk):
      • Create service classes to proxy Symfony functionality (e.g., TransportService).
      • Example:
        class TransportService {
            public function installAssets() {
                Artisan::call('baks:assets:install');
            }
        }
        
      • Pros: Tighter integration.
      • Cons: Fragile, high maintenance.
    • Option C: Fork and Rebuild (Long-Term):
      • Fork the repo and rewrite critical paths in Laravel (e.g., Eloquent models, custom commands).
      • Pros: Full control, no Symfony dependency.
      • Cons: High initial effort.
  3. Data Layer Integration:
    • Hybrid ORM Approach:
      • Use Doctrine for transport module, Eloquent for core.
      • Implement synchronization logic (e.g., Doctrine → Eloquent listeners).
    • Schema Conversion:
      • Manually convert Doctrine entities to Eloquent models.
      • Example:
        // Doctrine Entity → Eloquent Model
        // Vehicle.php (Doctrine) → Vehicle.php (Eloquent)
        
  4. Testing Strategy:
    • Extend PHPUnit Tests: Add Laravel-specific tests (e.g., HTTP routes, Eloquent queries).
    • Integration Tests: Test Symfony-Laravel interactions (e.g., API calls, event dispatching).
    • Document Assumptions: Track undocumented behaviors (e.g., event triggers, internal methods).

Compatibility Considerations

  • PHP Version: Requires PHP 8.4+. Ensure Laravel’s composer.json and server environment support this.
  • Doctrine vs. Eloquent:
    • Conflict Risk: Doctrine’s LifecycleCallbacks may clash with Eloquent’s model events.
    • Mitigation: Use Doctrine’s event system sparingly; prefer Eloquent for core logic.
  • Console Commands:
    • Symfony commands won’t work natively in Laravel. Solutions:
      • Artisan Proxies: Call Symfony commands via Artisan::call().
      • Custom Commands: Rewrite as Laravel Artisan commands.
  • Events and Listeners:
    • Symfony’s EventDispatcher must
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