Runtime basato su PSR
HTTP messages, middleware, factories, logging, integrazione del client HTTP e DI container rispettano i contratti PSR dove ha senso.
Una base modulare per PHP 8.1+ con PSR HTTP, PSR logging, container compatibile PSR-11, routing, views, layer database, sessions, validazione, upload e comandi CLI.
$kernel->handle();
HTTP messages, middleware, factories, logging, integrazione del client HTTP e DI container rispettano i contratti PSR dove ha senso.
Web request e comandi CLI condividono la stessa configurazione, il modello provider e il container, con entrypoint separati Kernel e CliKernel.
Routing, views, layer database, sessions, validazione, upload, security, events, queues e documentazione sono organizzati come componenti framework espliciti.
Panoramica delle principali parti integrate che costituiscono la base per applicazioni web, progetti CMS, interfacce di amministrazione e sistemi di integrazione.
ApplicationContext, kernels, runtime lifecycle, caricamento della configurazione e orchestrazione dei service providers.
$kernel->handle();
CLI entrypoint, lifecycle del CliKernel, command registry, exit codes e cron pattern con lock.
vendor/bin/lemonade list
Resolving della locale corrente, caricamento delle traduzioni, fallback strategy e applicazione della lingua durante il runtime.
$title = $helpers->lang('home.hero.title');
Service lifetimes, bindings, aliases, dependency resolution e pattern pratici per la registrazione dei servizi.
$container->singleton(MyService::class, MyService::class);
Strategia di registrazione dei servizi nel DI. Registrazioni provider-specific ed esempi pratici sono suddivisi nelle sottopagine.
$container->get(Lemonade\Framework\Routing\UrlGenerator::class);
HTTP request/response runtime, middleware pipeline, dispatch handlers ed error rendering flow.
(new KernelFactory())->create($context)->handle();
L’applicazione dispone di un livello API del framework con un endpoint di health check, una specifica OpenAPI e una semplice documentazione HTML.
GET /api/framework/health
Middleware contracts, ordine di processing, intercettazione del request/response flow e regole di composizione.
$framework->middleware(fn (MiddlewareStack $stack) => $stack->add(App\Http\Middleware\AuthMiddleware::class));
Comportamento del HTML response minification middleware, safety guards e punti di integrazione.
$pipeline->pipe(HtmlMinifyMiddleware::class);
Router con route esplicite e convention routes, named URL generation, route groups e middleware stack.
$router->getNamed('home', '/', 'HomeController@index');
Wiring del view engine, shared variables, component integration e rendering workflow.
$html = $this->view()->render('home.index', ['title' => 'Homepage']);
Presentation blocks riutilizzabili registrati tramite service providers ed esposti tramite ComponentRegistry.
$components = $container->get(ComponentRegistry::class);
Database infrastructure condivisa, provider boundaries, schema API e utilizzo pratico di base.
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 e integrazione nel request flow.
$session->set('user_id', 42);
Security primitives, CSRF protection, confini sicuri del request processing e note sull’autenticazione.
<?= $helpers->csrfField() ?>
Panoramica di FormValidation, schema usage e pagine dedicate alla descrizione dettagliata delle validation rules.
$result = $validator->field('email')->required()->email()->validate($payload);
Componente Debug con dumper service, cattura del context e selezione del renderer CLI/HTML.
dump($payload);
Integrazione di robots.txt e sitemap.xml per la reperibilità tecnica del sito.
$router->get("/sitemap.xml", ...);
Filesystem service, storage path helpers, file operations e scritture sicure durante il 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 ed esempi di processing dei file.
$image = $this->upload()->uploadImage('avatar', 'avatar');
Benchmarking, request logging, tracing hooks e punti di integrazione per la diagnostica operativa.
$logger->info('Import started');
Helper utilities, support abstractions condivise e usage patterns consigliati nell’applicazione.
$url = $helpers->url('documentation.show', ['path' => 'core']);