Pear/Net_Url_Mapper
今はたいていのフレームワークにURLをルーティングする機能が備わってるけど、その機能だけを抜き出したようなパッケージ。
やっつけで作ったオレオレフレームワークに組み込んだり、いまいち使い方が分からないEthnaのステキURLを代替できそう。
(以前symfonyのルーティングの仕組みをEthnaに取り込んだんだけど、ソースを消してしまってやる気を失った)
インストールはpearコマンドで。
$ sudo pear install Net_URL_Mapper-beta使い方は、以下のようにインスタンスを生成して、それにルールをセットしていく。 ルールは symfony とおんなじような感じで、 パラメータを挿入したいところに :param みたいに書く。
require_once "Net/URL/Mapper.php";
$m = Net_URL_Mapper::getInstance();
$m->connect('/article/:page', array('action' => 'article_show', 'page' => false));
$m->connect('/user/:user_id', array('action' => 'user_show'));
$m->connect('/search/:keyword/:page/:sort', array('action' => 'search', 'keyword' => "-", 'page' => "-", 'sort' => "-"));
URLからパラメータに変換する
$res = $m->match("/article/1");
print_r($res);
// Array
// (
// [action] => article_show
// [page] => 1
// )
$res = $m->match("/user/1");
print_r($res);
// Array
// (
// [action] => user_show
// [user_id] => 1
//)
パラメータからURLを生成する
$url = $m->generate(array("user_id" => 100));
var_dump($url);
// string(9) "/user/100"
$url = $m->generate(array('action' => 'article_show', 'page' => 1));
var_dump($url);
// string(10) "/article/1"
$url = $m->generate(array('action' => 'search', 'keyword' => '-', 'page' => 9, 'sort' => '-'));
var_dump($url);
// string(13) "/search/-/9/-"
トラックバック(1)
このブログ記事を参照しているブログ一覧: Pear/Net_Url_Mapper
このブログ記事に対するトラックバックURL: http://eringi.com/mt/mt-tb-eringi.cgi/131
» PEAR Net_Url_Mapper(p0t)~のトラックバック
eringi blog: Pear/Net_Url_Mapper 今はたいていの... 続きを読む
コメントする