- Can I use Ibexa Core in a Laravel project without Symfony’s full stack?
- Yes, Ibexa Core can be integrated into Laravel via its standalone APIs (PAPI/CMA) or by embedding Symfony components like HttpKernel. Use `symfony/http-kernel-bundle` to host Ibexa’s routes in Laravel’s container, or consume its REST/GraphQL endpoints via Guzzle. For minimal overhead, prioritize PAPI for content delivery and offload heavy CMS logic to a microservice.
- How do I handle database conflicts between Ibexa and Laravel Eloquent?
- Ibexa’s schema (e.g., `ibexa_content`) can conflict with Eloquent. Mitigate this by using a separate database for Ibexa or prefixing its tables (e.g., `ibexa_*`). Avoid shared tables like `users` unless you synchronize them via middleware. Ibexa’s CLI tools (`ibexa:io:migrate-files`) manage its own migrations independently.
- Is Ibexa Core compatible with Laravel’s authentication system?
- Ibexa’s RBAC can integrate with Laravel’s auth via custom guards or OAuth2 if using Ibexa’s API. For hybrid setups, create a bridge middleware to map Laravel users to Ibexa roles. Session handling (e.g., `SiteAccess`) may require Laravel middleware to translate Symfony’s session storage to Laravel’s format.
- What Laravel versions does Ibexa Core support, and are there breaking changes?
- Ibexa Core is Symfony-based, so it aligns with Laravel’s LTS versions (e.g., Laravel 10+ works with Symfony 6.x). Check the [Ibexa roadmap](https://github.com/ibexa/core) for Symfony dependency updates. Breaking changes often stem from Doctrine or Symfony upgrades; test thoroughly when upgrading. Use `composer require` with `--ignore-platform-reqs` cautiously.
- How do I optimize Ibexa Core for high-traffic Laravel applications?
- Leverage Ibexa’s search layer (Solr/Elasticsearch) for content-heavy queries and cache responses with Redis or APCu. Offload write operations to Laravel’s Eloquent for lightweight updates. Use PAPI for read-heavy workloads and consider a microservice architecture to decouple Ibexa from Laravel’s request lifecycle.
- Can I use Ibexa Core for a headless CMS without a traditional frontend?
- Absolutely. Ibexa Core’s PAPI (PHP API) delivers content via REST/GraphQL, ideal for SPAs, mobile apps, or microservices. Pair it with Laravel’s API routes or a separate Ibexa instance. For omnichannel publishing, use Ibexa’s `SiteAccess` to target different delivery channels (e.g., web, mobile) from a single repository.
- Are there alternatives to Ibexa Core for Laravel that offer similar features?
- For structured content management, consider **Spatie Laravel Media Library** (for assets), **Craft CMS** (via API), or **Directus** (headless CMS). For enterprise features like workflows or multilingual support, **Sylius** (eCommerce) or **October CMS** (Symfony-based) are alternatives. Ibexa stands out for its PAPI/CMA APIs and Solr/Elasticsearch integration.
- How do I integrate Ibexa’s Twig templates with Laravel’s Blade?
- Ibexa’s Twig templates (e.g., `ibexa_render`) can be adapted for Blade via custom directives or middleware. Create a Blade component that wraps Ibexa’s template logic or use a proxy service to render Ibexa templates server-side. For dynamic content, fetch Ibexa data via PAPI and pass it to Blade templates.
- What’s the best way to test Ibexa Core in a Laravel CI pipeline?
- Use Laravel’s testing tools to mock Ibexa’s API endpoints (e.g., `Http::fake()` for PAPI). For integration tests, spin up a Dockerized Ibexa instance (via `ibexa/docker`) and test interactions with Laravel’s HTTP clients. Test database migrations separately by seeding Ibexa’s schema in a CI environment.
- Does Ibexa Core support Laravel’s queue system for async content processing?
- Ibexa Core doesn’t natively integrate with Laravel queues, but you can trigger async tasks (e.g., content indexing) via Laravel’s queue system. Use Ibexa’s CLI commands (e.g., `ibexa:content:reindex`) in a Laravel command wrapped with `dispatch()` or call its API endpoints asynchronously with Guzzle.