PHP code example of pig / router
1. Go to this page and download the library: Download pig/router library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pig / router example snippets
$router = new \Pig\Router\Router();
try {
$router->loadRoutes(__DIR__ . "/api.php");
$router->dispatch();
} catch (\Pig\Router\NotFoundException $e) {
// Handle 404
echo "404 Not Found";
} catch (\Pig\Router\InvalidCallbackException $e) {
echo $e->getMessage();
}
/**
* @var \Pig\Router\Router $router
*/
// Simple routes
$router->get('/home', function() {
echo "Welcome Home";
});
$router->post('/submit', [\App\Controllers\FormController::class, 'submit']);
// Routes with parameters
$router->get('/user/{id}', function($id) {
echo "User ID: " . $id;
});
// Using regex parameters
$router->get('/user/(\d+)', function($userId) {
echo "User ID: " . $userId;
});
// Route grouping
$router->group('/api', [], function (\Pig\Router\Router $router) {
$router->get('/users', [\App\Controllers\UserController::class, 'index']);
$router->post('/users', [\App\Controllers\UserController::class, 'create']);
$router->get('/users/{id}', [\App\Controllers\UserController::class, 'show']);
});
$router->get('/admin', function() {
echo "Admin Panel";
})->middleware([\App\Middleware\AuthMiddleware::class, 'check']);
$router->group('/admin', [\App\Middleware\AuthMiddleware::class], function ($router) {
$router->get('/dashboard', [\App\Controllers\AdminController::class, 'dashboard']);
});
$router->before([\App\Middleware\LoggingMiddleware::class, 'logRequest']);
$router->after([\App\Middleware\LoggingMiddleware::class, 'logResponse']);
$router->group('/api/v1', [\App\Middleware\ApiMiddleware::class], function ($router) {
$router->get('/users', [\App\Controllers\Api\UserController::class, 'index']);
$router->post('/users', [\App\Controllers\Api\UserController::class, 'create']);
});
$router->compatible_mode('r'); // Use $_GET['r'] for routing
// index.php
ew \Pig\Router\Router();
$router->loadRoutes(__DIR__ . '/api.php');
$router->compatible_mode('r');
try {
// When visiting: http://example.test/index.php?r=/home
$router->dispatch();
} catch (\Pig\Router\NotFoundException $e) {
echo "404 Not Found";
}
// Call dispatch manually with a method and path
$result = $router->dispatch('GET', '/home');
$result = $router->dispatch('GET', '/home');