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

Source Laravel Package

redaxo/source

REDAXO is a PHP-based CMS/website framework focused on flexible, module-driven content creation with full control over input/output. Multilingual, highly extendable, and workflow-friendly, with strong community resources, docs, and addons.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Modular & Extensible: REDAXO’s architecture is built around a plugin-based system with a clear separation between core functionality and add-ons (e.g., mediapool, structure, users). This aligns well with modern Laravel/Lumen practices, where modularity and composability are key.
  • Symfony Integration: REDAXO leverages Symfony Components (v7.4+) for HTTP, YAML, and other utilities, which is compatible with Laravel’s ecosystem (e.g., Symfony’s HttpFoundation, Console, and DependencyInjection).
  • Event-Driven: REDAXO uses extension points (EPs) and hooks (e.g., MEDIA_LIST_QUERY, SLICE_BE_PREVIEW), similar to Laravel’s events/listeners or service providers. This enables deep customization without core modifications.
  • Database Abstraction: Uses a custom rex_sql layer (with PDO fallback), which can be mapped to Laravel’s Eloquent/Query Builder for data access.
  • Template System: Supports Smarty-like templating (with a move toward Blade-like fragments in newer versions), which can be replaced or extended with Laravel’s Blade for consistency.

Integration Feasibility

  • PHP 8.3+ Compatibility: REDAXO’s minimum PHP version (8.3) aligns with Laravel’s supported versions (8.1+), reducing runtime conflicts.
  • Composer Dependency Management: REDAXO uses Composer, making it easy to integrate as a vendor package or standalone installation alongside Laravel.
  • API & Service Layer: REDAXO’s service-oriented architecture (e.g., rex_media_service, rex_file) can be wrapped in Laravel facades or service containers for seamless integration.
  • Authentication & Authorization: REDAXO’s user/role system can be mapped to Laravel’s Gate/Policy or Passport/OAuth for unified auth.
  • Multilingual Support: REDAXO’s translation system can be extended with Laravel’s localization (config/app.php, lang/ directories).

Technical Risk

Risk Area Description Mitigation Strategy
Core vs. Laravel Routing REDAXO uses its own URL rewriting (rex_url), conflicting with Laravel’s router. Use a reverse proxy (Nginx/Apache) to route /redaxo/ to REDAXO and the rest to Laravel.
Session Management REDAXO and Laravel may conflict over session storage (e.g., session_start()). Configure separate session drivers (e.g., Redis for Laravel, file-based for REDAXO).
Database Schema REDAXO’s schema (e.g., rex_content, rex_media) may clash with Laravel migrations. Use database namespaces (e.g., redaxo_*) or a shared schema with caution.
Template Conflicts REDAXO’s templating (Smarty/Blade-like) may overlap with Laravel Blade. Isolate REDAXO templates in a subdirectory (e.g., /redaxo/templates/) and use Laravel’s @include for hybrid rendering.
Dependency Overlap Symfony components in REDAXO may conflict with Laravel’s installed versions. Use Composer’s replace or conflict to enforce version consistency.
Caching Layer REDAXO’s caching (e.g., rex_cache) may interfere with Laravel’s cache drivers. Implement a shared cache backend (Redis/Memcached) with distinct keyspaces.
CLI Tooling REDAXO’s rex CLI commands may conflict with Laravel’s artisan. Use custom command namespaces (e.g., php redaxo:command vs. artisan).

Key Questions

  1. Use Case Clarity:

    • Is REDAXO being integrated as a headless CMS backend for Laravel, a hybrid frontend/backend, or a legacy system replacement?
    • Will it handle content management (e.g., articles, media) while Laravel handles APIs/auth?
  2. Data Flow:

    • How will data sync between REDAXO (e.g., rex_content) and Laravel (e.g., Eloquent models)?
    • Will Laravel consume REDAXO’s API or directly query its database?
  3. Authentication:

    • Should REDAXO users authenticate via Laravel Passport or maintain separate sessions?
    • Will role-based access control (RBAC) be unified or kept separate?
  4. Deployment:

    • Will REDAXO and Laravel run in separate containers (Docker) or shared hosting?
    • How will updates (e.g., REDAXO 5.21 → 5.22) be managed without breaking Laravel?
  5. Performance:

    • Will REDAXO’s Smarty templates be replaced with Laravel Blade for consistency?
    • How will caching (e.g., Redis) be shared without conflicts?
  6. Long-Term Maintenance:

    • Is the team comfortable with dual-codebase maintenance (Laravel + REDAXO)?
    • Are there plans to gradually migrate from REDAXO to Laravel’s ecosystem (e.g., Nova, Filament)?

Integration Approach

Stack Fit

Laravel Component REDAXO Equivalent Integration Strategy
Routing rex_url, rex_router Use a reverse proxy (Nginx) to route /admin to REDAXO and /api to Laravel.
Authentication rex_user, rex_auth Map REDAXO users to Laravel’s users table or use OAuth2 (Passport) for SSO.
Database (Eloquent) rex_sql, rex_content Create Eloquent models that extend REDAXO’s rex_sql or use raw queries with caution.
Templating (Blade) Smarty/Blade-like fragments Replace REDAXO templates with Laravel Blade via a custom loader or hybrid rendering.
API (Lumen/Fortify) REDAXO’s REST API (if extended) Build a Laravel API layer that queries REDAXO’s database or exposes its endpoints.
File Storage rex_file, mediapool Use Laravel’s Filesystem to wrap REDAXO’s rex_file or sync media to S3.
Event System Extension Points (EPs) Create Laravel events that trigger REDAXO hooks or vice versa via a bridge service.
Queue/Jobs Custom cron jobs Replace REDAXO cron jobs with Laravel Queues (e.g., php artisan queue:work).
Localization rex_language Extend REDAXO’s translations with Laravel’s lang/ directory or use a shared JSON store.
Caching rex_cache Use Redis/Memcached as a shared backend with distinct keyspaces (e.g., redaxo::, laravel::).

Migration Path

  1. Phase 1: Coexistence (Minimal Integration)

    • Install REDAXO and Laravel in separate directories (e.g., /var/www/redaxo, /var/www/laravel).
    • Use Nginx/Apache to route requests:
      • /admin* → REDAXO
      • /api* → Laravel
    • Share database (with namespaced tables) or use separate schemas.
    • Implement auth unification via OAuth2 (Passport) or session sharing.
  2. Phase 2: Data Synchronization

    • Build Laravel models that query REDAXO’s database (e.g., Post::where('rex_content.*')).
    • Use Laravel Jobs to sync critical data (e.g., media uploads, user roles).
    • Replace REDAXO’s Smarty templates with Laravel Blade for frontend consistency.
  3. Phase 3: API-First Approach

    • Expose REDAXO’s data via a Laravel API (e.g., /api/redaxo/posts).
    • Use GraphQL (Laravel Nova) to unify queries across both systems.
    • Gradually migrate business logic from REDAXO plugins to Laravel services.
  4. Phase 4: Full Convergence (Optional)

    • Rewrite REDAXO-specific features as Laravel packages (e.g., `
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.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle