Lemonade Framework

Ein PSR-basierter PHP-Framework für Web- und CLI-Runtime.

Eine modulare PHP-8.1+-Grundlage mit PSR HTTP, PSR Logging, PSR-11-kompatiblem Container, Routing, Views, Datenbank-Layer, Sessions, Validierung, Uploads und CLI-Commands.

PSR-basierte RuntimeGemeinsamer Bootstrap für Web und CLIKomponentenbasis
bootstrap/app.php
$kernel->handle();
Runtime flow
RequestKernelProvidersRouterControllerResponse
Product showcase

What ships with Lemonade

Core capabilities

Built for PHP applications that need structure, not noise

PSR-basierte Runtime

HTTP Messages, Middleware, Factories, Logging, HTTP-Client-Integration und DI Container respektieren PSR Contracts dort, wo es sinnvoll ist.

Gemeinsamer Bootstrap für Web und CLI

Web Requests und CLI-Commands teilen dieselbe Konfiguration, das Provider-Modell und den Container mit getrennten Entrypoints Kernel und CliKernel.

Komponentenbasis

Routing, Views, Datenbank-Layer, Sessions, Validierung, Uploads, Security, Events, Queues und Dokumentation sind als explizite Framework-Komponenten organisiert.

Components

Framework-Komponenten

Überblick über die wichtigsten eingebauten Teile, die die Grundlage für Webanwendungen, CMS-Projekte, Administrationsoberflächen und Integrationssysteme bilden.

Core

Application Core

ApplicationContext, kernels, runtime lifecycle, Laden der Konfiguration und Orchestrierung der service providers.

component.php
$kernel->handle();
Dokumentation
Core

CLI Runtime

CLI entrypoint, CliKernel lifecycle, command registry, exit codes und cron pattern mit Lock.

component.php
vendor/bin/lemonade list
Dokumentation
Core

Localization

Resolving der aktuellen locale, Laden von Übersetzungen, fallback strategy und Sprachanwendung während des runtime.

component.php
$title = $helpers->lang('home.hero.title');
Dokumentation
Core

Dependency Injection Container

Service lifetimes, bindings, aliases, dependency resolution und praktische Patterns für Service-Registrierung.

component.php
$container->singleton(MyService::class, MyService::class);
Dokumentation
Core

Registered Services

Strategie der Service-Registrierung im DI. Provider-specific registrations und praktische Beispiele sind in Unterseiten aufgeteilt.

component.php
$container->get(Lemonade\Framework\Routing\UrlGenerator::class);
Dokumentation
HTTP

HTTP Layer

HTTP request/response runtime, middleware pipeline, dispatch handlers und error rendering flow.

component.php
(new KernelFactory())->create($context)->handle();
Dokumentation
HTTP

Framework-API

Die Anwendung verfügt über eine Framework-API-Schicht mit Health-Endpunkt, OpenAPI-Spezifikation und einfacher HTML-Dokumentation.

component.php
GET /api/framework/health
Dokumentation
HTTP

Middleware

Middleware contracts, processing order, Eingriff in den request/response flow und Kompositionsregeln.

component.php
$framework->middleware(fn (MiddlewareStack $stack) => $stack->add(App\Http\Middleware\AuthMiddleware::class));
Dokumentation
Optimization

HTML Minification

Verhalten des HTML response minification middleware, safety guards und Integrationspunkte.

component.php
$pipeline->pipe(HtmlMinifyMiddleware::class);
Dokumentation
HTTP

Routing

Router mit explicit routes und convention routes, named URL generation, route groups und middleware stack.

component.php
$router->getNamed('home', '/', 'HomeController@index');
Dokumentation
Presentation

View Rendering

Wiring der view engine, shared variables, component integration und rendering workflow.

component.php
$html = $this->view()->render('home.index', ['title' => 'Homepage']);
Dokumentation
Presentation

UI Components

Wiederverwendbare presentation blocks, registriert über service providers und verfügbar über ComponentRegistry.

component.php
$components = $container->get(ComponentRegistry::class);
Dokumentation
Persistence

Database Layer

Gemeinsame database infrastructure, provider boundaries, schema API und grundlegende praktische Nutzung.

component.php
use Lemonade\Framework\Database\Database;

$db = $container->get(Database::class);
$rows = $db->select('SELECT * FROM users WHERE active = ?', [1]);
Dokumentation
State

Session

Session lifecycle, flash messages, handler bindings und Integration in den request flow.

component.php
$session->set('user_id', 42);
Dokumentation
Security

Security

Security primitives, CSRF protection, sichere Grenzen des request processing und Hinweise zur Authentifizierung.

component.php
<?= $helpers->csrfField() ?>
Dokumentation
Input

Validation

Überblick über FormValidation, schema usage und separate Seiten mit detaillierter Beschreibung der validation rules.

component.php
$result = $validator->field('email')->required()->email()->validate($payload);
Dokumentation
Diagnostics

Debug

Debug-Komponente mit dumper service, context capture und Auswahl des CLI/HTML renderers.

component.php
dump($payload);
Dokumentation
SEO

Discovery

Integration von robots.txt und sitemap.xml für die technische Auffindbarkeit der Website.

component.php
$router->get("/sitemap.xml", ...);
Dokumentation
Files

Filesystem

Filesystem service, storage path helpers, file operations und sichere Schreibvorgänge während des runtime.

component.php
$filesystem->write($context->resolveCachePath('example.json'), json_encode($payload, JSON_THROW_ON_ERROR));
$data = json_decode($filesystem->read($context->resolveCachePath('example.json')), true, 512, JSON_THROW_ON_ERROR);
Dokumentation
Files

Upload

Upload service flow, file validation boundaries, storage strategies und Beispiele für file processing.

component.php
$image = $this->upload()->uploadImage('avatar', 'avatar');
Dokumentation
Observability

Observability

Benchmarking, request logging, tracing hooks und Integrationspunkte für operative Diagnostik.

component.php
$logger->info('Import started');
Dokumentation
Support

Support Utilities

Helper utilities, gemeinsame support abstractions und empfohlene usage patterns in der Anwendung.

component.php
$url = $helpers->url('documentation.show', ['path' => 'core']);
Dokumentation