ludelix / framework
Modern PHP framework for scalable web applications with SPA integration, multi-tenancy, and observability
Fund package maintenance!
ludelix
Requires
- php: ^8.1
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- ext-pdo: *
- doctrine/annotations: ^2.0
- open-telemetry/api: ^1.0
- promphp/prometheus_client_php: ^2.6
- psr/container: ^2.0
- psr/http-message: ^2.0
- psr/log: ^3.0
- ratchet/pawl: ^0.4
- symfony/yaml: ^6.0
Requires (Dev)
- mockery/mockery: ^1.5
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-06-25 16:03:47 UTC
README
๐ Ludelix Framework
Modern PHP framework for next-generation web applications
โจ Key Features
๐จ SharpTemplate Engine
- Reactive templates with
.ludou
extension - Hot reload support for development
- Built-in security and performance optimizations
๐ Bridge System
- Contextual service access without traditional facades
- Type-safe service resolution
- Better performance and debugging
๐ LudelixConnect
- Modern SPA integration replacing Inertia.js
- Server-Side Rendering (SSR) support
- WebSocket integration for real-time features
- React, Vue, and Svelte adapters
๐ข Multi-Tenancy
- Native tenant isolation
- Database, cache, and configuration separation
- Automatic tenant resolution
๐ Observability
- Built-in OpenTelemetry integration
- Prometheus metrics collection
- Performance monitoring and tracing
๐ฃ๏ธ Dynamic Routing
- YAML and PHP route definitions
- REST, GraphQL, and WebSocket unified routing
- Automatic API documentation generation
๐ Quick Start
Installation
# Install the framework composer require ludelix/framework # Create a new project composer create-project ludelix/app my-app cd my-app # Install frontend dependencies npm install # Start development php ludelix serve
Basic Usage
<?php // routes.php Route::get('/', [HomeController::class, 'index']) ->connect('Home') ->name('home'); // HomeController.php class HomeController { public function index() { return Connect::component('Home', [ 'user' => Bridge::auth()->user(), 'posts' => Bridge::db()->table('posts')->get() ]); } }
// Home.jsx import { get, form } from '@ludelix/connect'; function Home({ user, posts }) { return ( <div> <h1>Welcome, {user.name}!</h1> <button onClick={() => get('/dashboard')}>Dashboard</button> </div> ); }
๐ Documentation
๐งช Testing
# Run tests composer test # Run with coverage composer test -- --coverage # Static analysis composer analyse
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
git clone https://github.com/ludelix/framework.git cd framework composer install composer test
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Why Ludelix?
Modern Architecture
- SharpTemplate (.ludou) - Reactive templates with hot reload
- Bridge System - Type-safe contextual service access
- LudelixConnect - Advanced SPA integration with SSR
- Native Multi-Tenancy - Built-in tenant isolation
- Integrated Observability - OpenTelemetry and Prometheus ready
- Unified Frontend - Single Vite configuration for all frameworks
Made with โค๏ธ by the Ludelix Team
Website โข Documentation โข Issues โข Discord