Runtime oparty na PSR
HTTP messages, middleware, factories, logging, integracja klienta HTTP i DI container respektują kontrakty PSR tam, gdzie ma to sens.
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.
$kernel->handle();
HTTP messages, middleware, factories, logging, integracja klienta HTTP i DI container respektują kontrakty PSR tam, gdzie ma to sens.
Requesty webowe i komendy CLI współdzielą tę samą konfigurację, model providerów i container z osobnymi entrypointami Kernel i CliKernel.
Routing, views, baza danych, sessions, walidacja, uploady, security, events, queues i dokumentacja są zorganizowane jako jawne 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.
ApplicationContext, kernels, runtime lifecycle, ładowanie konfiguracji i orkiestracja service providers.
$kernel->handle();
CLI entrypoint, lifecycle CliKernel, command registry, exit codes oraz cron pattern z lockiem.
vendor/bin/lemonade list
Resolving aktualnej locale, ładowanie tłumaczeń, fallback strategy i zastosowanie języka podczas runtime.
$title = $helpers->lang('home.hero.title');
Service lifetimes, bindings, aliases, dependency resolution oraz praktyczne patterny rejestracji usług.
$container->singleton(MyService::class, MyService::class);
Strategia rejestracji usług w DI. Provider-specific registrations i praktyczne przykłady są podzielone na podstrony.
$container->get(Lemonade\Framework\Routing\UrlGenerator::class);
HTTP request/response runtime, middleware pipeline, dispatch handlers oraz error rendering flow.
(new KernelFactory())->create($context)->handle();
Aplikacja ma warstwę API frameworka z endpointem health, specyfikacją OpenAPI i prostą dokumentacją HTML.
GET /api/framework/health
Middleware contracts, kolejność processingu, ingerencja w request/response flow oraz reguły kompozycji.
$framework->middleware(fn (MiddlewareStack $stack) => $stack->add(App\Http\Middleware\AuthMiddleware::class));
Zachowanie HTML response minification middleware, safety guards i punkty integracji.
$pipeline->pipe(HtmlMinifyMiddleware::class);
Router z explicit routes i convention routes, named URL generation, route groups oraz middleware stack.
$router->getNamed('home', '/', 'HomeController@index');
Wiring view engine, shared variables, component integration oraz rendering workflow.
$html = $this->view()->render('home.index', ['title' => 'Homepage']);
Reużywalne presentation blocks rejestrowane przez service providers i udostępniane przez ComponentRegistry.
$components = $container->get(ComponentRegistry::class);
Wspólna database infrastructure, provider boundaries, schema API oraz podstawowe praktyczne użycie.
use Lemonade\Framework\Database\Database;
$db = $container->get(Database::class);
$rows = $db->select('SELECT * FROM users WHERE active = ?', [1]);
Session lifecycle, flash messages, handler bindings oraz integracja z request flow.
$session->set('user_id', 42);
Security primitives, CSRF protection, bezpieczne granice request processingu oraz uwagi dotyczące uwierzytelniania.
<?= $helpers->csrfField() ?>
Przegląd FormValidation, schema usage oraz osobne strony z dokładnym opisem validation rules.
$result = $validator->field('email')->required()->email()->validate($payload);
Komponent Debug z dumper service, przechwytywaniem contextu i wyborem CLI/HTML renderer.
dump($payload);
Integracja robots.txt i sitemap.xml dla technicznej odnajdywalności serwisu.
$router->get("/sitemap.xml", ...);
Filesystem service, storage path helpers, file operations oraz bezpieczne zapisy podczas runtime.
$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);
Upload service flow, file validation boundaries, storage strategies oraz przykłady processingu plików.
$image = $this->upload()->uploadImage('avatar', 'avatar');
Benchmarking, request logging, tracing hooks oraz punkty integracji dla diagnostyki operacyjnej.
$logger->info('Import started');
Helper utilities, współdzielone support abstractions oraz zalecane usage patterns w aplikacji.
$url = $helpers->url('documentation.show', ['path' => 'core']);