定制 aviyandev/http 二次开发

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

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

aviyandev/http

最新稳定版本:v1.0.0

Composer 安装命令:

composer require aviyandev/http

包简介

A simple HTTP Foundation component

README 文档

README

A lightweight, modern PHP HTTP abstraction package inspired by Symfony HttpFoundation — with zero third-party dependencies. Supports PSR-7, PSR-15, fluent API, middleware, and custom HTTP exceptions.

Features

  • PSR-7 compatible Request & Response classes
  • PSR-15 Middleware support
  • Fluent API for building responses
  • Immutable request object design
  • Custom HTTP Exceptions (404, 401, 403, etc.)
  • No external dependencies
  • Cookie and Session management
  • File uploads handling
  • JSON response helpers
  • Stream abstraction

Installation

composer require aviyandev/http

Basic Usage

Creating a Response

use Http\Response;
use Http\JsonResponse;

// Basic response
$response = new Response('Hello World', 200);

// JSON response
$response = new JsonResponse(['message' => 'Success']);

// Redirect response
$response = new RedirectResponse('/dashboard');

Handling Requests

use Http\Request;

// Get current request
$request = Request::createFromGlobals();

// Access request data
$id = $request->query->get('id');
$token = $request->headers->get('Authorization');
$data = $request->request->all(); // POST data

Working with Middleware

use Http\Middleware\MiddlewareInterface;

class AuthMiddleware implements MiddlewareInterface
{
    public function process(Request $request, callable $next)
    {
        if (!$request->headers->has('Authorization')) {
            return new Response('Unauthorized', 401);
        }
        
        return $next($request);
    }
}

File Uploads

$file = $request->files->get('document');

if ($file->isValid()) {
    $file->move('/uploads', 'new-filename.pdf');
}

Session Handling

use Http\Session;

$session = new Session();
$session->start();

$session->set('user_id', 123);
$userId = $session->get('user_id');

API Reference

Response Class

  • setContent(string $content): Set response content
  • setStatusCode(int $code): Set HTTP status code
  • headers->set(string $key, string $value): Set response header
  • send(): Send the response

Request Class

  • query: GET parameters
  • request: POST parameters
  • headers: Request headers
  • cookies: Cookie parameters
  • files: Uploaded files
  • getMethod(): Get HTTP method
  • getUri(): Get request URI

JsonResponse Class

  • setData(array $data): Set JSON data
  • withEncoding(int $options): Set JSON encoding options

Stream Class

  • write(string $data): Write to stream
  • read(int $length): Read from stream
  • getContents(): Get remaining contents
  • getSize(): Get stream size

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This package is open-sourced software licensed under the MIT license.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-11