- Can I use Laravel alongside REDAXO in the same project without conflicts?
- Yes, but requires careful planning. REDAXO and Laravel can coexist by treating them as separate layers—Laravel for APIs/auth and REDAXO for content management. Use Composer’s `replace` for overlapping Symfony dependencies (e.g., Symfony 7.4 vs. Laravel’s 7.2) and abstract REDAXO’s `rex_sql` with Eloquent adapters for shared database access.
- How do I migrate REDAXO’s Smarty templates to Laravel Blade?
- Replace REDAXO’s Smarty templates incrementally by creating Blade views that mirror the existing structure. For dynamic content, wrap REDAXO’s `rex_content` data in Eloquent models or expose it via API resources. Use a custom compiler or manual translation for complex templates, prioritizing Blade’s syntax for new development.
- Does REDAXO support Laravel’s Eloquent ORM for database operations?
- Not natively, but you can bridge the gap by creating Eloquent models that extend REDAXO’s `rex_sql` queries. For example, map `rex_content` to an Eloquent model while using Laravel’s migrations for new tables. Avoid direct schema conflicts by treating REDAXO’s tables as read-only or using a dual-write system for critical data.
- What Laravel versions are compatible with REDAXO 5.x?
- REDAXO 5.x relies on Symfony 7.4, which aligns with Laravel 10.x (Symfony 7.2) but may introduce conflicts. Test thoroughly with Laravel 10/11 using PHP 8.3, focusing on dependency resolution. Use `composer why-not` to identify version mismatches and manually override constraints if needed.
- How can I integrate REDAXO’s multilingual features with Laravel’s localization?
- Leverage Laravel’s built-in localization (`lang` files) for UI strings while using REDAXO’s `rex_language` tables for content-specific translations. Create a facade or service to merge both systems, or build a custom adapter that syncs REDAXO’s language packs with Laravel’s locale folders. Prioritize consistency in fallback logic.
- Will REDAXO’s event system (EPs) work with Laravel’s event listeners?
- No, but you can create a bridge using a Laravel service provider. Listen for REDAXO’s event points (e.g., `EP_SLICE_BE_PREVIEW`) via PHP hooks or a custom event dispatcher that translates them into Laravel events. For example, dispatch `Event::dispatch('EP_SLICE_BE_PREVIEW')` in a REDAXO plugin and handle it in Laravel’s `EventServiceProvider`.
- Can I use Laravel’s authentication (e.g., Jetstream) instead of REDAXO’s admin panel?
- Yes, but requires decoupling the frontend. Replace REDAXO’s `be_style` (backend) with Laravel’s Jetstream or Fortify for authentication, while keeping REDAXO’s content management intact. Use Laravel’s middleware to protect routes and integrate REDAXO’s user data (`rex_user`) via Eloquent or API calls.
- How do I handle concurrent edits between REDAXO’s admin panel and Laravel APIs?
- Implement a locking mechanism or optimistic concurrency control. Use Laravel’s database transactions for API writes and REDAXO’s built-in locking (e.g., `rex_lock`) for admin actions. Log conflicts in a shared table (e.g., `edit_conflicts`) and notify users via Laravel’s queue system or REDAXO’s message stack.
- Are there performance risks mixing REDAXO’s singleton services with Laravel’s DI container?
- Yes, but they can coexist with caution. REDAXO’s services (e.g., `rex`) are stateless singletons, while Laravel’s container manages dependencies dynamically. Avoid injecting REDAXO services directly into Laravel’s container; instead, use facades or static methods. Benchmark memory usage, especially in high-traffic scenarios.
- What alternatives exist for integrating REDAXO with Laravel if this approach is too complex?
- Consider a microservices architecture where REDAXO runs as a headless CMS (exposing content via REST/GraphQL) and Laravel consumes its API. Alternatively, use a wrapper package like `spatie/laravel-package-tools` to encapsulate REDAXO’s core logic as a Laravel package, abstracting its internals. For simpler needs, evaluate Laravel-native CMS packages like `spatie/laravel-medialibrary` or `orchid/software`.