PHP 8.3–8.5 · PSR-7 · PSR-15

PHP framework pro web a CLI.

Lemonade poskytuje PSR-7 HTTP runtime, PSR-15 middleware, pojmenované routy, dependency injection, serverové PHP views a konzolové příkazy.

HTTP RUNTIME · DI CONTAINER · CLI
app/Controllers/HomeController.phpPHP 8.3–8.5
<?php

declare(strict_types=1);

namespace App\Controllers;

use Lemonade\Framework\View\ViewRendererInterface;
use Psr\Http\Message\ResponseInterface;

final readonly class HomeController
{
    public function __construct(
        private ViewRendererInterface $views,
    ) {
    }

    public function index(): ResponseInterface
    {
        return $this->views->render('home.index');
    }
}
●  Constructor DI · PSR-7 · ViewsPSR-7 / PSR-15
{ services }CONSTRUCTOR DI · REQUEST SCOPE
01 / PHP 8.3+02 / PSR-7 & PSR-1503 / SERVICE PROVIDERS · TYPED CONFIG04 / WEB + CLI↘ POKRAČOVAT NÍŽ
Součásti frameworku

Přehled
funkcí.

Základ tvoří HTTP runtime, routing, dependency injection a CLI. Další moduly zajišťují práci s databází, validaci, cache a fronty.

01 / APLIKAČNÍ ZÁKLAD ↗

Architektura a správa služeb

Kernel řídí běh aplikace, service providery registrují služby a DI kontejner zajišťuje jejich vytváření a závislosti.

KernelService provideryDI kontejner
02 / HTTP VRSTVA ↗

HTTP a PSR standardy

PSR-7 požadavky a odpovědi, PSR-15 middleware, routing a zpracování controllerů.

Požadavek → Middleware → Odpověď
03 / WEB A CLI ⌘

HTTP a konzolové aplikace

Společný model konfigurace a registrace služeb pro webové požadavky i konzolové příkazy.

KernelCliKernel
04 / DATA ▤

Databáze a migrace

Databázové adaptéry, transakce, práce se schématem a verzované databázové migrace.

DatabázeMigrace
05 / DALŠÍ KOMPONENTY ✳

Další služby

Validace, cache, sessions, nahrávání souborů, lokalizace, události a fronty.

ValidaceCacheFronty
Zpracování HTTP požadavku

Od požadavku
k odpovědi.

Kernel vytvoří Request scope, spustí PSR-15 middleware, router vybere controller akci a emitter odešle výslednou PSR-7 odpověď.

KROK 0101

Požadavek

Do aplikace přichází HTTP požadavek. Lemonade jej reprezentuje jako PSR-7 ServerRequest s metodou, URI, hlavičkami, cookies, soubory a parsovaným tělem.

ServerRequestInterface · ServerRequestFactory · PSR-7
PSR-7 REQUEST / PSR-15 MIDDLEWARE / PSR-7 RESPONSEKERNEL → ROUTER → CONTROLLER →
Ukázky API

Jednoduché API v praxi.

Na příkladu jednoduchého API pro články uvidíte, jak v Lemonade spolupracují routing, controllery a dependency injection. Od registrace endpointu přes načtení dat až po výslednou JSON odpověď.

PožadavekGET /api/articles/42
  1. Router přiřadí požadavek controlleru.

  2. Controller načte článek přes službu, která vrací model.

  3. Aplikace vrátí PSR-7 JSON odpověď.

Route zachytí ID článku z URL a předá požadavek controlleru.

✳   LEMONADE / UKÁZKA APIPHP 8.3+
app/Config/Routing.php
<?php

declare(strict_types=1);

use Demo\ArticleApi\Controllers\ArticleController;
use Lemonade\Framework\Routing\ControllerAction;
use Lemonade\Framework\Routing\Router;

return static function (Router $router): void {
    $router->get(
        '/api/articles/{id}',
        ControllerAction::for(ArticleController::class, 'show'),
    );
};
Routing · Constructor DI · PSR-7 JSONPHP 8.3+   /   UTF-8
Zobrazit všechny ukázky

První aplikace.

Projděte instalaci, základní konfiguraci a vytvoření první aplikace.