定制 vulpes/router-v2 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vulpes/router-v2

最新稳定版本:v1.0.1

Composer 安装命令:

composer require vulpes/router-v2

包简介

router

关键字:

README 文档

README

<?php declare(strict_types=1);

/**
 *
 * @var CacheInterface $cache
 * @var LoggerInterface $logger
 * @var ContainerInterface $container
 * @var ServerRequestFactoryInterface $serverRequestFactory
 * @var ResponseFactoryInterface $responseFactory
 * @var StreamFactoryInterface $streamFactory
 * @var UriFactoryInterface $uriFactory
 */

use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ServerRequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UriFactoryInterface;
use Psr\Log\LoggerInterface;
use Psr\SimpleCache\CacheInterface;
use Vulpes\RouterV2\RequestHandler;
use Vulpes\RouterV2\Router\Dispatcher;
use Vulpes\RouterV2\SapiEmitter;
use Vulpes\RouterV2\ServerRequestFactory;

try {

    $serverRequestFactory = new ServerRequestFactory(
        serverRequestFactory: $serverRequestFactory,
        streamFactory: $streamFactory,
        uriFactory: $uriFactory
    );

    $serverRequest = $serverRequestFactory->createServerRequest($_SERVER);

    // register if possible
    // $container->set(Psr\Http\Message\ServerRequestInterface::class, $serverRequest);

    $dispatcher = new Dispatcher($responseFactory, $cache);
    $dispatcher->addControllers(
        MyControllerOrRequestHandler::class, AnotherControllerOrRequestHandler::class
    );

    $requestHandler = new RequestHandler(
        container: $container,
        dispatcher: $dispatcher,
        responseFactory: $responseFactory,
    );

    $response = $requestHandler->handle($serverRequest);

    (new SapiEmitter())->emit($response);

} catch (Throwable $exception) {

    ($logger ?? null)?->emergency($exception->getMessage(), [
        'exception' => $exception,
        'request' => $serverRequest ?? null
    ]);

    header("HTTP/1.1 500 Internal Server Error");
    header('Content-Type: text/plain;charset=utf-8');
    print $exception;
}

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-06