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 今はたいていの... 続きを読む

コメントする

このブログ記事について

このページは、が2007年4月 6日 22:58に書いたブログ記事です。

ひとつ前のブログ記事は「基幹システムが姉歯DB設計の会社で働いてました。」です。

次のブログ記事は「BloglinesからLivedoor Readerへ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。