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 contentsetStatusCode(int $code): Set HTTP status codeheaders->set(string $key, string $value): Set response headersend(): Send the response
Request Class
query: GET parametersrequest: POST parametersheaders: Request headerscookies: Cookie parametersfiles: Uploaded filesgetMethod(): Get HTTP methodgetUri(): Get request URI
JsonResponse Class
setData(array $data): Set JSON datawithEncoding(int $options): Set JSON encoding options
Stream Class
write(string $data): Write to streamread(int $length): Read from streamgetContents(): Get remaining contentsgetSize(): 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
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-11