Lemonade Framework

Un framework PHP basado en estándares PSR para runtime web y CLI.

Una base modular para PHP 8.1+ con PSR HTTP, PSR logging, container compatible con PSR-11, routing, views, capa de base de datos, sessions, validación, uploads y comandos CLI.

Runtime basado en PSRBootstrap compartido para web y CLIBase de componentes
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 basado en PSR

HTTP messages, middleware, factories, logging, integración del cliente HTTP y DI container respetan los contratos PSR donde tiene sentido.

Bootstrap compartido para web y CLI

Web requests y comandos CLI comparten la misma configuración, modelo provider y container, con entrypoints separados Kernel y CliKernel.

Base de componentes

Routing, views, capa de base de datos, sessions, validación, uploads, security, events, queues y documentación están organizados como componentes explícitos del framework.

Components

Componentes del framework

Resumen de las principales partes integradas que sirven como base para aplicaciones web, proyectos CMS, interfaces de administración y sistemas de integración.

Core

Application Core

ApplicationContext, kernels, runtime lifecycle, carga de configuración y orquestación de service providers.

component.php
$kernel->handle();
Documentación
Core

CLI Runtime

CLI entrypoint, lifecycle de CliKernel, command registry, exit codes y cron pattern con lock.

component.php
vendor/bin/lemonade list
Documentación
Core

Localization

Resolving de la locale actual, carga de traducciones, fallback strategy y aplicación del idioma durante el runtime.

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

Dependency Injection Container

Service lifetimes, bindings, aliases, dependency resolution y patterns prácticos para registrar servicios.

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

Registered Services

Estrategia de registro de servicios en DI. Provider-specific registrations y ejemplos prácticos están divididos en subpáginas.

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

HTTP Layer

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

component.php
(new KernelFactory())->create($context)->handle();
Documentación
HTTP

API del framework

La aplicación tiene una capa API del framework con un endpoint de health check, una especificación OpenAPI y documentación HTML sencilla.

component.php
GET /api/framework/health
Documentación
HTTP

Middleware

Middleware contracts, orden de processing, intervención en el request/response flow y reglas de composición.

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

HTML Minification

Comportamiento del HTML response minification middleware, safety guards y puntos de integración.

component.php
$pipeline->pipe(HtmlMinifyMiddleware::class);
Documentación
HTTP

Routing

Router con explicit routes y convention routes, named URL generation, route groups y middleware stack.

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

View Rendering

Wiring del view engine, shared variables, component integration y rendering workflow.

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

UI Components

Presentation blocks reutilizables registrados mediante service providers y expuestos vía ComponentRegistry.

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

Database Layer

Database infrastructure compartida, provider boundaries, schema API y uso práctico básico.

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

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

Session

Session lifecycle, flash messages, handler bindings e integración en el request flow.

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

Security

Security primitives, CSRF protection, límites seguros del request processing y notas sobre autenticación.

component.php
<?= $helpers->csrfField() ?>
Documentación
Input

Validation

Resumen de FormValidation, schema usage y páginas dedicadas a la descripción detallada de validation rules.

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

Debug

Componente Debug con dumper service, captura de context y selección de renderer CLI/HTML.

component.php
dump($payload);
Documentación
SEO

Discovery

Integración de robots.txt y sitemap.xml para la detectabilidad técnica del sitio.

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

Filesystem

Filesystem service, storage path helpers, file operations y escrituras seguras durante el 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);
Documentación
Files

Upload

Upload service flow, file validation boundaries, storage strategies y ejemplos de procesamiento de archivos.

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

Observability

Benchmarking, request logging, tracing hooks y puntos de integración para diagnóstico operativo.

component.php
$logger->info('Import started');
Documentación
Support

Support Utilities

Helper utilities, support abstractions compartidas y usage patterns recomendados en la aplicación.

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