Fast Route Kütüphanesi

Geçtiğimiz aylarda Symfony/Routing İle Rotalarınızı Yönetin başlıklı bir yazı yayınlamıştım. O yazıda Symfony/Routing kütüphanesi ile PHP projelerinizde nasıl rotalama işlemi gerçekleştirebileceğinizden bahsetmiştim. Ancak bu yazıda, bir başka rotalama kütüphanesine değineceğim;

Symfony/Routing kesinlikle harika bir kütüphane. Ancak gerçekleştirilen bir ‘ne denk gelmem kütüphanesi ile tanışmamı sağladı. Benchmark testine göre en hızlı rotalama kütüphanesi . Bunun arkasında yatan neden için kütüphanesi yaratıcısı , kütüphaneyi “Regex Temelinde Çalışan Bir Kütüphane” olarak tanımlıyor. Bu konuyla ilgili oldukça detaylı olarak bir blog yazısı hazırlanmış. İlgili blog yazısına buradan ulaşabilirsiniz;

Kullanım

Kütüphane Composer ile hızlı bir şekilde kurulabiliyor () ve kullanımı da oldukça basit;


require '/path/to/FastRoute/src/bootstrap.php';

$dispatcher = FastRoute\simpleDispatcher(function(FastRoute\RouteCollector $r) {
    $r->addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler0');
    $r->addRoute('GET', '/user/{id:[0-9]+}', 'handler1');
    $r->addRoute('GET', '/user/{name}', 'handler2');
});

$routeInfo = $dispatcher->dispatch($httpMethod, $uri);
switch ($routeInfo[0]) {
    case FastRoute\Dispatcher::NOT_FOUND:
        // ... 404 Not Found
        break;
    case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
        $allowedMethods = $routeInfo[1];
        // ... 405 Method Not Allowed
        break;
    case FastRoute\Dispatcher::FOUND:
        $handler = $routeInfo[1];
        $vars = $routeInfo[2];
        // ... call $handler with $vars
        break;
}

Eğer basit ama hızlı bir rota yapısı oluşturmak isterseniz bu kütüphane tam size göre. Repository üzerine gönderilen incelediğimizde ise yazıyı yazdığım anda hala aktif bir kütüphane olduğunu söyleyebiliriz.