Lemonade Framework

Framework PHP oparty na standardach PSR dla runtime webowego i CLI.

Modularna baza dla PHP 8.1+ z PSR HTTP, PSR loggingiem, containerem kompatybilnym z PSR-11, routingiem, views, warstwą bazy danych, sessions, walidacją, uploadami i komendami CLI.

Runtime oparty na PSRWspólny bootstrap dla web i CLIBaza komponentowa
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

Runtime oparty na PSR

HTTP messages, middleware, factories, logging, integracja klienta HTTP i DI container respektują kontrakty PSR tam, gdzie ma to sens.

Wspólny bootstrap dla web i CLI

Requesty webowe i komendy CLI współdzielą tę samą konfigurację, model providerów i container z osobnymi entrypointami Kernel i CliKernel.

Baza komponentowa

Routing, views, baza danych, sessions, walidacja, uploady, security, events, queues i dokumentacja są zorganizowane jako jawne komponenty frameworka.

Components

Komponenty frameworka

Przegląd głównych wbudowanych części, które stanowią bazę dla aplikacji webowych, projektów CMS, paneli administracyjnych i systemów integracyjnych.

Core

Application Core

ApplicationContext, kernels, runtime lifecycle, ładowanie konfiguracji i orkiestracja service providers.

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

CLI Runtime

CLI entrypoint, lifecycle CliKernel, command registry, exit codes oraz cron pattern z lockiem.

component.php
vendor/bin/lemonade list
Dokumentacja
Core

Localization

Resolving aktualnej locale, ładowanie tłumaczeń, fallback strategy i zastosowanie języka podczas runtime.

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

Dependency Injection Container

Service lifetimes, bindings, aliases, dependency resolution oraz praktyczne patterny rejestracji usług.

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

Registered Services

Strategia rejestracji usług w DI. Provider-specific registrations i praktyczne przykłady są podzielone na podstrony.

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

HTTP Layer

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

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

API frameworka

Aplikacja ma warstwę API frameworka z endpointem health, specyfikacją OpenAPI i prostą dokumentacją HTML.

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

Middleware

Middleware contracts, kolejność processingu, ingerencja w request/response flow oraz reguły kompozycji.

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

HTML Minification

Zachowanie HTML response minification middleware, safety guards i punkty integracji.

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

Routing

Router z explicit routes i convention routes, named URL generation, route groups oraz middleware stack.

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

View Rendering

Wiring view engine, shared variables, component integration oraz rendering workflow.

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

UI Components

Reużywalne presentation blocks rejestrowane przez service providers i udostępniane przez ComponentRegistry.

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

Database Layer

Wspólna database infrastructure, provider boundaries, schema API oraz podstawowe praktyczne użycie.

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

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

Session

Session lifecycle, flash messages, handler bindings oraz integracja z request flow.

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

Security

Security primitives, CSRF protection, bezpieczne granice request processingu oraz uwagi dotyczące uwierzytelniania.

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

Validation

Przegląd FormValidation, schema usage oraz osobne strony z dokładnym opisem validation rules.

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

Debug

Komponent Debug z dumper service, przechwytywaniem contextu i wyborem CLI/HTML renderer.

component.php
dump($payload);
Dokumentacja
SEO

Discovery

Integracja robots.txt i sitemap.xml dla technicznej odnajdywalności serwisu.

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

Filesystem

Filesystem service, storage path helpers, file operations oraz bezpieczne zapisy podczas 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);
Dokumentacja
Files

Upload

Upload service flow, file validation boundaries, storage strategies oraz przykłady processingu plików.

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

Observability

Benchmarking, request logging, tracing hooks oraz punkty integracji dla diagnostyki operacyjnej.

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

Support Utilities

Helper utilities, współdzielone support abstractions oraz zalecane usage patterns w aplikacji.

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