🦖
[] codesaur/http-application 1=[]
codesaur/http-application · v7.0.1

HTTP Application

PSR-7 & PSR-15 нийцсэн хөнгөн, уян хатан HTTP Application цөм

Packagist version Downloads PHP version License Aikido Intel 99/100 PSR-7PSR-15
1:1 ══ composer require codesaur/http-application
[] HTTP Application

PSR-7 (HTTP Message) ба PSR-15 (RequestHandler / Middleware) стандартууд дээр суурилсан минималист, middleware суурьтай Application цөм. Router (нэг эсвэл олон), middleware, controller/action, closure route, exception handler зэргийг хэдхэн мөр кодоор нэгтгэж өөрийн хүссэн бүтэцтэй web application босгох боломжтой.

Онцлогууд
  • PSR-7 стандартын ServerRequest + Response
  • PSR-15 Middleware & RequestHandler гинжин (onion) бүтэц
  • Олон Router-ийг нэг Application-д нэгтгэх (multi-router delegation)
  • Application-ийг URL prefix-д mount хийх - Router-ууд reusable
  • override() - өмнө бүртгэсэн route-ийг ил дарж бичих lane
  • Controller суурь класс (сонголтот)
  • Per-route middleware (MiddlewareInterface, Closure, class-string)
  • Exception Handler (development mode-той)

Үндсэн классууд

КлассҮүрэг
ApplicationMiddleware stack, router цуглуулга, mount, handle()
ControllerController/action суурь класс - request helper-үүдтэй
ExceptionHandlerException-ийг HTTP хариу болгох middleware
ExceptionHandlerInterfaceCustom exception handler-ийн contract

Жишээ код

use codesaur\Router\Router;
use codesaur\Http\Application\Application;
use codesaur\Http\Application\ExceptionHandler;
use codesaur\Http\Message\ServerRequest;
use codesaur\Http\Message\NonBodyResponse;

// Router-д route бүртгэх / Register routes on Router
$router = new Router();
$router->GET('/', function ($req) {
    echo 'Hello World!';
});
$router->GET('/user/{int:id}', [UserController::class, 'show'])->name('user.show');

// Application үүсгэх + middleware + router нэмэх
$app = new Application(new NonBodyResponse());
$app->use(new ExceptionHandler());
$app->use(new AuthMiddleware());
$app->use($router);
$app->mount('/dashboard');   // бүх route /dashboard prefix-тэй болов

// Хүсэлт боловсруулах / Handle request
$request = (new ServerRequest())->initFromGlobal();
$response = $app->handle($request);

Тест ажиллуулах

composer test
[] Info
Суулгах
composer require codesaur/http-application
Шаардлага
  • PHP 8.2.1+
  • Composer
  • PSR-7 implementation (codesaur/http-message)
Aikido оноо 99/100
Шалгасан: 2026-09-04
Хамаарал (codesaur)
Холбоосууд