[■]
codesaur/http-application
1=[↕]
1:1 ══ composer require codesaur/http-application
codesaur/http-application · v7.0.1
HTTP Application
PSR-7 & PSR-15 нийцсэн хөнгөн, уян хатан 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-той)
Үндсэн классууд
| Класс | Үүрэг |
|---|---|
Application | Middleware stack, router цуглуулга, mount, handle() |
Controller | Controller/action суурь класс - request helper-үүдтэй |
ExceptionHandler | Exception-ийг HTTP хариу болгох middleware |
ExceptionHandlerInterface | Custom 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)
Хамаарал (codesaur)
- codesaur/router ^6.0.1
Баримт бичиг