Runtime basado en PSR
HTTP messages, middleware, factories, logging, integración del cliente HTTP y DI container respetan los contratos PSR donde tiene sentido.
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.
$kernel->handle();
HTTP messages, middleware, factories, logging, integración del cliente HTTP y DI container respetan los contratos PSR donde tiene sentido.
Web requests y comandos CLI comparten la misma configuración, modelo provider y container, con entrypoints separados Kernel y CliKernel.
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.
Resumen de las principales partes integradas que sirven como base para aplicaciones web, proyectos CMS, interfaces de administración y sistemas de integración.
ApplicationContext, kernels, runtime lifecycle, carga de configuración y orquestación de service providers.
$kernel->handle();
CLI entrypoint, lifecycle de CliKernel, command registry, exit codes y cron pattern con lock.
vendor/bin/lemonade list
Resolving de la locale actual, carga de traducciones, fallback strategy y aplicación del idioma durante el runtime.
$title = $helpers->lang('home.hero.title');
Service lifetimes, bindings, aliases, dependency resolution y patterns prácticos para registrar servicios.
$container->singleton(MyService::class, MyService::class);
Estrategia de registro de servicios en DI. Provider-specific registrations y ejemplos prácticos están divididos en subpáginas.
$container->get(Lemonade\Framework\Routing\UrlGenerator::class);
HTTP request/response runtime, middleware pipeline, dispatch handlers y error rendering flow.
(new KernelFactory())->create($context)->handle();
La aplicación tiene una capa API del framework con un endpoint de health check, una especificación OpenAPI y documentación HTML sencilla.
GET /api/framework/health
Middleware contracts, orden de processing, intervención en el request/response flow y reglas de composición.
$framework->middleware(fn (MiddlewareStack $stack) => $stack->add(App\Http\Middleware\AuthMiddleware::class));
Comportamiento del HTML response minification middleware, safety guards y puntos de integración.
$pipeline->pipe(HtmlMinifyMiddleware::class);
Router con explicit routes y convention routes, named URL generation, route groups y middleware stack.
$router->getNamed('home', '/', 'HomeController@index');
Wiring del view engine, shared variables, component integration y rendering workflow.
$html = $this->view()->render('home.index', ['title' => 'Homepage']);
Presentation blocks reutilizables registrados mediante service providers y expuestos vía ComponentRegistry.
$components = $container->get(ComponentRegistry::class);
Database infrastructure compartida, provider boundaries, schema API y uso práctico básico.
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 integración en el request flow.
$session->set('user_id', 42);
Security primitives, CSRF protection, límites seguros del request processing y notas sobre autenticación.
<?= $helpers->csrfField() ?>
Resumen de FormValidation, schema usage y páginas dedicadas a la descripción detallada de validation rules.
$result = $validator->field('email')->required()->email()->validate($payload);
Componente Debug con dumper service, captura de context y selección de renderer CLI/HTML.
dump($payload);
Integración de robots.txt y sitemap.xml para la detectabilidad técnica del sitio.
$router->get("/sitemap.xml", ...);
Filesystem service, storage path helpers, file operations y escrituras seguras durante el 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 y ejemplos de procesamiento de archivos.
$image = $this->upload()->uploadImage('avatar', 'avatar');
Benchmarking, request logging, tracing hooks y puntos de integración para diagnóstico operativo.
$logger->info('Import started');
Helper utilities, support abstractions compartidas y usage patterns recomendados en la aplicación.
$url = $helpers->url('documentation.show', ['path' => 'core']);