- Can I use elasticms/core-bundle in a Laravel 10/11 project without Symfony?
- Yes, but you’ll need the Symfony Bridge (symfony/console, symfony/http-kernel) to integrate core bundle functionality. Laravel 10/11 supports Symfony 6.x/7.x, so ensure your Laravel version aligns with the bundle’s Symfony requirements. Check the [documentation](https://ems-project.github.io/#/dev/core-bundle/index.md) for specific setup steps, as some Symfony components may require manual bootstrapping in Laravel’s AppServiceProvider.
- How does elasticms/core-bundle handle authentication if my Laravel app uses Sanctum or Passport?
- The bundle uses Symfony Security by default, which may conflict with Laravel Sanctum/Passport. You’ll need to implement a custom auth bridge or disable one of the systems. For example, you could expose admin routes via Sanctum-protected APIs while keeping the bundle’s backend logic intact. Test thoroughly, as session handling (e.g., cookies vs. tokens) may differ between the two systems.
- Is elasticms/core-bundle compatible with Eloquent ORM, or do I have to use Doctrine?
- The bundle is built for Doctrine ORM, so Eloquent compatibility isn’t guaranteed. You can abstract Doctrine calls behind interfaces to reduce friction, but expect migration conflicts or dual-ORM overhead. If Eloquent is critical, evaluate alternatives like spatie/laravel-permission or custom API wrappers around the bundle’s CRUD logic. Always check the [mono-repo issues](https://github.com/ems-project/elasticms/issues) for Eloquent-specific discussions.
- What frontend frameworks does elasticms/core-bundle support for the admin panel?
- The bundle provides Twig templates for ElasticMS Admin by default, but you can integrate React/Vue via Laravel Mix or Vite. For a custom frontend, expose admin routes as JSON endpoints (e.g., using Laravel Sanctum) and build a separate UI. If using Twig, ensure your Laravel project includes the Symfony Twig bridge (symfony/twig-bundle). Blade templates won’t work natively without additional configuration.
- How do I extend the core bundle with custom admin modules (e.g., reporting, workflows)?
- The bundle follows a modular design, so you can create custom modules by extending its base classes or using event listeners. For example, you might override the bundle’s CRUD controllers or add new Twig templates for your module. Check the [documentation](https://ems-project.github.io/#/dev/core-bundle/index.md) for module registration hooks and Symfony’s bundle inheritance patterns. Third-party plugins can integrate via service providers or API endpoints.
- Does elasticms/core-bundle work in a microservices architecture, or is it monolith-only?
- The bundle is optimized for monolithic Laravel apps due to its tight coupling with Symfony components. For microservices, consider exposing its backend logic (e.g., CRUD, permissions) via REST/GraphQL APIs (e.g., using spatie/laravel-graphql) and building a separate admin frontend. Avoid direct Symfony bundle integration in microservices, as it may introduce unnecessary complexity. Test API performance under load if adopting this approach.
- What Laravel versions officially support elasticms/core-bundle, and how do I check compatibility?
- The bundle requires Symfony 6.x/7.x, which aligns with Laravel 10.x/11.x. Verify compatibility by checking the bundle’s [release tags](https://github.com/ems-project/EMSCoreBundle/releases) and Laravel’s [Symfony support matrix](https://laravel.com/docs/10.x/upgrading#symfony-6). If using an older Laravel version, you may need to pin Symfony dependencies manually or use a Symfony Bridge. Always test in a staging environment before production deployment.
- Are there performance overhead concerns with elasticms/core-bundle in production?
- The bundle adds minimal overhead if configured properly, but Symfony’s additional layers (e.g., Twig, Doctrine) may impact performance compared to pure Laravel. Profile with Laravel Telescope or Blackfire to identify bottlenecks, especially in high-traffic admin panels. Optimize by caching Twig templates, lazy-loading modules, and using database query builders efficiently. Avoid mixing heavy Symfony components with lightweight Laravel routes.
- How do I handle database migrations if my Laravel app uses Eloquent but the bundle uses Doctrine?
- You’ll need to either migrate all models to Doctrine or create a dual-ORM strategy. For the latter, use a migration tool like Laravel Schema Builder for Eloquent and Doctrine Migrations for the bundle, then synchronize changes manually. Alternatively, abstract the bundle’s ORM calls behind a repository pattern to decouple it from Doctrine. Always back up your database before testing migrations in production.
- What alternatives exist if elasticms/core-bundle doesn’t fit my Laravel project’s needs?
- For Symfony-like admin panels, consider Laravel Nova (official) or Backpack for Laravel (open-source). If you need DDD or modularity, explore packages like spatie/laravel-permission (for auth) or apiato/apiato-laravel (for API-driven admin). For headless admin backends, use Laravel Sanctum + custom APIs with a React/Vue frontend. Evaluate each based on your stack (e.g., Eloquent vs. Doctrine) and long-term maintenance.