軽量なルーティングライブラリ【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...
}
}