軽量なルーティングライブラリ【AltoRouter】

軽量なルーティングライブラリ【AltoRouter】

AltoRouterは軽量でパワフルなライブラリです。

単一ファイルで、依存するライブラリもないため、本格的なシステムの構築から、カジュアルなアプリケーションの作成まで幅広く活躍してくれます。

動作確認環境

  • PHP 5.3+

インストール

Using Composer

$ php composer.phar install
require 'vendor/autoload.php';

Without Composer

require 'AltoRouter.php';

使い方

.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

index.php

<?php
$router = new AltoRouter();

// map homepage
$router->map( 'GET', '/', function() {
    require __DIR__ . '/views/home.php';
});

// dynamic named route
$router->map( 'GET|POST', '/users/[i:id]/', function( $id ) {
  $user = .....
  require __DIR__ . '/views/user/details.php';
}, 'user-details' );

// echo URL to user-details page for ID 5
echo $router->generate( 'user-details', array( 'id' => 5 ) ); // Output: "/users/5"

Laravelライクに使う

AltoRouterはLaravelのようにコントロラーを利用することもできます

<?php
$router = new AltoRouter();

$router->map('GET','/', 'Welcom::get', 'welcome');

if( is_array($match) && is_callable( $match['target'] ) ) {
  $params = explode("::", $match['target']);
  $action = new $params[0]();
  call_user_func_array(array($action, $params[1]) , $match['params']);
} else {
  header( $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
}
class Welcome
{
  public function get(){
    // codes...
  }
}

参考文献