chubbyphp/chubbyphp-framework-router-aura

此包已被弃用且不再维护。作者建议使用 chubbyphp/chubbyphp-framework-fastroute 包。

chubbyphp-framework 的 aura 路由实现。

2.0.0 2022-10-02 19:15 UTC

This package is auto-updated.

Last update: 2023-12-02 17:51:11 UTC


README

CI Coverage Status Infection MSI Latest Stable Version Total Downloads Monthly Downloads

bugs code_smells coverage duplicated_lines_density ncloc sqale_rating alert_status reliability_rating security_rating sqale_index vulnerabilities

描述

Aura Router 实现,用于 chubbyphp-framework

已弃用:建议使用 chubbyphp-framework-router-fastroute

需求

安装

通过 Composer 作为 chubbyphp/chubbyphp-framework-router-aura 安装。

composer require chubbyphp/chubbyphp-framework-router-aura "^2.0"

用法

<?php

declare(strict_types=1);

namespace App;

use Chubbyphp\Framework\Application;
use Chubbyphp\Framework\Middleware\ExceptionMiddleware;
use Chubbyphp\Framework\Middleware\RouterMiddleware;
use Chubbyphp\Framework\RequestHandler\CallbackRequestHandler;
use Chubbyphp\Framework\Router\Aura\Router;
use Chubbyphp\Framework\Router\Route;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Psr7\Factory\ResponseFactory;
use Slim\Psr7\Factory\ServerRequestFactory;

$loader = require __DIR__.'/vendor/autoload.php';

$responseFactory = new ResponseFactory();

$app = new Application([
    new ExceptionMiddleware($responseFactory, true),
    new RouterMiddleware(new Router([
        Route::get('/hello/{name}', 'hello', new CallbackRequestHandler(
            function (ServerRequestInterface $request) use ($responseFactory) {
                $name = $request->getAttribute('name');
                $response = $responseFactory->createResponse();
                $response->getBody()->write(sprintf('Hello, %s', $name));

                return $response;
            }
        ), [], [Router::PATH_TOKENS => ['name' => '[a-z]+']])
    ])),
]);

$app->emit($app->handle((new ServerRequestFactory())->createFromGlobals()));

版权

2023 Dominik Zogg