Kotchasan Framework Documentation

Kotchasan Framework Documentation

Kotchasan\Http\Router

TH 05 Feb 2026 06:23

Kotchasan\Http\Router

Router class จัดการ URL routing เพื่อ map URLs ไปยัง Controllers

การใช้งาน

use Kotchasan\Http\Router;

// กำหนด routes
Router::map('/', 'Home\Index\Controller');
Router::map('/users', 'User\Index\Controller');
Router::map('/users/{id}', 'User\View\Controller');

เมธอดหลัก

map()

Router::map($pattern, $controller);

get() / post() / put() / delete()

Router::get('/api/users', 'Api\User\Controller@list');
Router::post('/api/users', 'Api\User\Controller@create');
Router::put('/api/users/{id}', 'Api\User\Controller@update');
Router::delete('/api/users/{id}', 'Api\User\Controller@delete');

group()

Router::group('/admin', function() {
    Router::map('/dashboard', 'Admin\Dashboard\Controller');
    Router::map('/users', 'Admin\Users\Controller');
});

Route Parameters

// Required parameter
Router::map('/users/{id}', 'User\View\Controller');

// Optional parameter
Router::map('/posts/{year}/{month?}', 'Post\Archive\Controller');

// Regex constraint
Router::map('/users/{id:\d+}', 'User\View\Controller');  // id ต้องเป็นตัวเลข

ตัวอย่าง

RESTful API Routes

Router::group('/api/v1', function() {
    // Products
    Router::get('/products', 'Api\Product\Controller@list');
    Router::get('/products/{id:\d+}', 'Api\Product\Controller@show');
    Router::post('/products', 'Api\Product\Controller@create');
    Router::put('/products/{id:\d+}', 'Api\Product\Controller@update');
    Router::delete('/products/{id:\d+}', 'Api\Product\Controller@delete');

    // Categories
    Router::get('/categories', 'Api\Category\Controller@list');
});

Module-based Routing

// routes/web.php
Router::map('/', 'Home\Index\Controller');
Router::map('/about', 'Page\About\Controller');
Router::map('/contact', 'Page\Contact\Controller');

// Admin routes
Router::group('/admin', function() {
    Router::map('/', 'Admin\Dashboard\Controller');
    Router::map('/users', 'Admin\Users\Controller');
    Router::map('/settings', 'Admin\Settings\Controller');
});

Access Route Parameters

// Controller
public function render(Request $request)
{
    // /users/123 -> Router::map('/users/{id}', ...)
    $userId = $request->get('id')->toInt();
}

คลาสที่เกี่ยวข้อง