- Can this bundle work with Laravel’s multi-tenancy (e.g., Spatie Tenant) instead of Akeneo’s TenantInterface?
- Yes, but with adaptations. The bundle’s `TenantInterface` can be mapped to Laravel’s tenant-aware Eloquent models or Spatie Tenant’s middleware. You’ll need to rewrite the Symfony-specific tenant logic (e.g., services.yaml) to use Laravel’s connection switching or middleware-based scoping. Start by implementing a `TenantMiddleware` to bind the current tenant to Eloquent.
- How do I replace Google Cloud Pub/Sub with Laravel Queues (Redis/DynamoDB) or Pusher?
- The `PubSubService` will require refactoring to use Laravel’s queue system or a third-party Pub/Sub client like Pusher. Replace the Symfony-specific Pub/Sub logic with Laravel’s `Bus` facade or a queue worker. Existing subscribers would need to adapt to Laravel’s event system or queue listeners, which may involve rewriting event handlers or using Laravel’s `dispatch()` method.
- Will the Symfony UX/Twig admin panels (Event Platform UI) work in Laravel, or do I need Livewire/Inertia.js?
- The UI components are Symfony/Twig-based and won’t work natively in Laravel. You’ll need to rebuild them using Laravel’s Blade, Livewire, or Inertia.js. The routing and controller logic can be adapted, but templates and frontend assets (e.g., Twig extensions) will require manual migration. Start by converting the Symfony routes to Laravel’s `Route::get()` or API routes.
- Does this bundle support Laravel’s GraphQL (e.g., Laravel GraphQL or Reactive) or only client-side queries?
- The `GraphQLService` is designed for client-side queries using `idci/graphql-client-bundle`, which is Symfony-centric. For Laravel GraphQL servers, you’ll need to create custom resolvers or middleware to bridge the service with Laravel’s GraphQL schema. Alternatively, use a Laravel-compatible GraphQL client like `webonyx/graphql-php` and adapt the service layer accordingly.
- What Laravel versions are supported, and are there Symfony dependencies I need to avoid?
- This bundle is Symfony-based and lacks official Laravel support, but it can work with Laravel 8+ if you abstract Symfony-specific components (e.g., services.yaml → Laravel’s `config/services.php`). Avoid Symfony’s `FrameworkBundle` or `HttpKernel` dependencies; focus on DI containers, routing, and Doctrine/Eloquent compatibility. Test thoroughly, as some Symfony abstractions (e.g., Twig, UX) won’t translate directly.
- How do I integrate the Event Platform Management UI into Laravel’s admin panel (Nova/Forge)?
- The Event Platform UI is a standalone Symfony controller. To integrate it into Laravel Nova or Forge, extract the routing and logic into Laravel controllers, then embed the UI as a Nova tool or Forge resource. Use Laravel’s `view()` helper to render the Symfony templates (if converted to Blade) or rebuild the UI with Livewire components. Ensure event listeners in the bundle are mapped to Laravel’s `Event::dispatch()`.
- Are there alternatives to this bundle for Laravel multi-tenancy + event-driven extensions?
- For multi-tenancy, consider `spatie/laravel-multitenancy` or `stancl/tenancy`. For event-driven extensions, Laravel’s built-in `Event` facade or packages like `laravel-echo` (for real-time) work well. If you need a GraphQL client, `webonyx/graphql-php` is Laravel-native. However, this bundle’s strength lies in its Akeneo-specific tooling (e.g., Event Platform UI), which may not be fully replicated elsewhere.
- How do I test this bundle in a Laravel environment before full integration?
- Start by isolating core services (e.g., `GraphQLService`, `PubSubService`) and mocking Symfony dependencies. Use Laravel’s `Mockery` or PHPUnit to test interactions with Eloquent or queues. For UI components, create a minimal Laravel route that renders the Symfony controller’s logic via Blade or Livewire. Avoid testing Symfony-specific features (e.g., Twig) until they’re migrated.
- Will the UI Extensions Management (WIP) work in production, or is it too unstable?
- The UI Extensions feature is marked as WIP and likely lacks production-ready stability. Expect incomplete documentation and potential breaking changes. For production use, prioritize the Event Platform UI and GraphQL/PubSub services, which are more mature. If you proceed, plan for customizations to Blade/Livewire and thorough testing in a staging environment.
- Can I use this bundle without Symfony components (e.g., just the TenantInterface and services)?
- Yes, you can extract and adapt the `TenantInterface` and service classes (e.g., `GraphQLService`) for Laravel use. Remove Symfony-specific dependencies like `services.yaml` or `TwigBundle` and rewrite configurations for Laravel’s DI container. The Event Platform UI and PubSubService, however, are tightly coupled to Symfony and will require significant refactoring to work standalone.