kodhe / http
Kodhe HTTP - Request, Response, Middleware & Pipeline
1.1.0
2026-09-28 21:40 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
- kodhe/agent: Loaded optionally by BaseController
- kodhe/view: ViewFactory used by BaseController theme binding
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-09-29 21:23:45 UTC
README
Library HTTP komprehensif untuk framework Kodhe yang menyediakan Request, Response, Middleware, Pipeline, dan Routing system.
๐ฆ Instalasi
composer require kodhe/http
Requirements
- PHP >= 8.1
- Composer
๐ Fitur Utama
- Request Handling - Pengelolaan HTTP request (GET, POST, cookies, files, environment)
- Response Management - Pembuatan dan pengelolaan HTTP response dengan status codes dan headers
- Middleware System - Sistem middleware yang fleksibel dengan support pipeline
- Pipeline Architecture - Request processing pipeline dengan exception handling
- Advanced Routing - Router modern dengan support untuk:
- Named routes
- Route groups
- API versioning
- Subdomain routing
- Resource routes
- Rate limiting
- Controller System - Base controller dengan theme binding
- Helper Functions - URL dan routing helpers
๐ Struktur Package
http/
โโโ src/
โ โโโ Controllers/
โ โ โโโ BaseController.php
โ โ โโโ Controller.php
โ โ โโโ RESTController.php
โ โโโ Kernel/
โ โ โโโ Kernel.php
โ โ โโโ Pipeline.php
โ โโโ Middleware/
โ โ โโโ Middleware.php
โ โ โโโ MiddlewareGroup.php
โ โ โโโ MiddlewareInterface.php
โ โ โโโ MiddlewareRegistry.php
โ โ โโโ CallableMiddleware.php
โ โโโ Requests/
โ โ โโโ FormRequest.php
โ โ โโโ ValidatesRequests.php
โ โโโ Routing/
โ โ โโโ Router.php
โ โ โโโ Route.php
โ โ โโโ RouteCollection.php
โ โ โโโ RouteItem.php
โ โ โโโ RoutingManager.php
โ โ โโโ UnifiedRouter.php
โ โ โโโ ...
โ โโโ JsonResponse.php
โ โโโ RedirectResponse.php
โ โโโ Request.php
โ โโโ Response.php
โ โโโ ResponseFactory.php
โ โโโ Uri.php
โ โโโ helpers/
โ โโโ url.php
โ โโโ routing.php
โโโ tests/
โ โโโ Unit/
โ โโโ RequestTest.php
โ โโโ ResponseTest.php
โ โโโ UriTest.php
โ โโโ Kernel/
โ โโโ Middleware/
โ โโโ Routing/
โ โโโ Helpers/
โโโ composer.json
โโโ phpunit.xml
๐ก Penggunaan
Request
use Kodhe\Framework\Http\Request; // Membuat request dari globals $request = Request::fromGlobals(); // Mengakses data $getId = $request->get('id'); $postData = $request->post('data'); $method = $request->getMethod(); $isAjax = $request->isAjax(); // JSON body $jsonData = $request->json();
Response
use Kodhe\Framework\Http\Response; $response = new Response(); // Set status dan body $response->setStatus(200); $response->setBody('Hello World'); // Set headers $response->setHeader('Content-Type', 'application/json'); // JSON response $response->asJson(['message' => 'Success']); // Redirect $response->redirect('/dashboard');
Middleware
use Kodhe\Framework\Http\Middleware\Middleware; use Kodhe\Framework\Http\Request; use Kodhe\Framework\Http\Response; class AuthMiddleware extends Middleware { public function handle(Request $request, callable $next) { // Check authentication if (!$this->isAuthenticated()) { return $this->response->setStatus(401)->setBody('Unauthorized'); } return $next($request); } protected function isAuthenticated() { // Your auth logic here return true; } }
Pipeline
use Kodhe\Framework\Http\Kernel\Pipeline; use Kodhe\Framework\Http\Request; use Kodhe\Framework\Http\Response; $pipeline = new Pipeline($request, $response); // Add middlewares $pipeline->pipe(AuthMiddleware::class) ->pipe(CorsMiddleware::class) ->pipeMany([ RateLimitMiddleware::class, SanitizeMiddleware::class ]); // Set handler $pipeline->setHandler(function($request, $response, $params) { // Your controller logic return $response->setBody('Processed'); }); // Execute pipeline $result = $pipeline->execute();
Routing
use Kodhe\Framework\Http\Routing\Router; $router = new Router(); // Basic route $router->get('/', 'HomeController@index'); // Named route $router->get('/users', 'UserController@index')->name('users.index'); // Route with parameters $router->get('/users/{id}', 'UserController@show'); // Route group with middleware $router->group(['middleware' => ['auth']], function($router) { $router->get('/dashboard', 'DashboardController@index'); $router->get('/profile', 'ProfileController@show'); }); // API routes with versioning $router->apiGroup(['version' => 'v1'], function($router) { $router->get('/users', 'Api\UserController@index'); $router->post('/users', 'Api\UserController@store'); }); // Resource route $router->resource('posts', 'PostController'); // Generate URL for named route $url = route('users.index'); $urlWithParams = route('users.show', ['id' => 1]);
Helper Functions
URL Helpers
// Base URL $baseUrl = base_url(); // Full URL $fullUrl = site_url('path/to/page'); // Current URL $currentUrl = current_url(); // Previous URL $prevUrl = previous_url();
Routing Helpers
// Generate named route URL $url = route('users.index'); // API route with version $apiUrl = api_route('api.users', ['version' => 'v2']); // Subdomain route $subdomainUrl = subdomain_route('blog.post', 'blog', ['slug' => 'my-post']);
๐งช Testing
Jalankan unit tests menggunakan PHPUnit:
cd http
composer install
vendor/bin/phpunit
Atau dengan konfigurasi XML:
vendor/bin/phpunit --configuration phpunit.xml
๐ Class Overview
Core Classes
| Class | Description |
|---|---|
Request |
HTTP request handler dengan support GET, POST, JSON, files |
Response |
HTTP response builder dengan status codes dan headers |
Uri |
URI parser dan builder |
JsonResponse |
Specialized response untuk JSON |
RedirectResponse |
Specialized response untuk redirects |
Kernel
| Class | Description |
|---|---|
Pipeline |
Request processing pipeline |
Kernel |
Application kernel untuk bootstrap |
Middleware
| Class | Description |
|---|---|
Middleware |
Abstract base class untuk middleware |
MiddlewareInterface |
Interface untuk middleware |
MiddlewareGroup |
Grouping multiple middlewares |
MiddlewareRegistry |
Registry untuk middleware management |
CallableMiddleware |
Wrapper untuk closure-based middleware |
Routing
| Class | Description |
|---|---|
Router |
Main router dengan modern & legacy support |
Route |
Individual route definition |
RouteCollection |
Collection of routes |
RouteItem |
Route item dengan metadata |
RoutingManager |
Centralized routing management |
UnifiedRouter |
Advanced router dengan unified interface |
RateLimiter |
Rate limiting untuk routes |
Controllers
| Class | Description |
|---|---|
BaseController |
Base controller dengan theme binding |
Controller |
Standard controller implementation |
RESTController |
RESTful API controller base |
๐ง Konfigurasi
Router dapat dikonfigurasi dengan berbagai options:
$router = new Router([ 'enable_modern_routing' => true, 'enable_legacy_routing' => true, 'prefer_modern' => true, 'cache_routes' => true, 'auto_detect_namespace' => true, 'allow_namespace_in_routes' => true, 'controller_suffix' => '', 'default_404_controller' => 'FileNotFound', 'default_404_namespace' => 'Kodhe\\Controllers\\Error\\' ]);
๐ License
MIT License - lihat file LICENSE untuk detail lengkap.
๐ค Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ Support
Untuk pertanyaan dan issue, silakan buat issue di repository atau hubungi tim development.
Version: 1.1.0
Package: kodhe/http
Namespace: Kodhe\Framework\Http