主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Zend Framework の Router の使い方

最終更新日 2008-08-20 23:46:39 (1年以上前の記事です)

Zend Framework には Zend_Controller_Router_Route っていうのがあり、これで URL のパスの制御ができる。
例えば、 enjoitech.jp/help っていう URL を実装したい時に、 Zend の標準の設定では /help は helpController の indexAction に通じるわけだけど、これを Router でうまい事変更してやれる。

ここの例では staticController っていう static なコンテンツを全部管理するコントローラーを作っておいて、そこに helpAction っていうアクションをつくり、/help をそこに通じるようルーティングする方法を説明する。

まず、コードを追加する場所だけど、これは front controller を run する前がいいので index.php が妥当。別に別のファイルにして include しても構わないとは思う。
そして、実際に追加するコードは以下の通り

require_once("Zend/Controller/Front.php");
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$router->addRoute(
    'help',
    new Zend_Controller_Router_Route(
        'help',
        array('controller' => 'static', 'action' => 'help')
    )
);

このコードは、まずフロントコントローラのインスタンスを取得して、そこから router オブジェクトを受け取って、そこに新しいルーティングを help という名前で追加してる。
実際のルーティングオブジェクトは Zend_Controller_ROuter_Route でこのコードでは help というパスへのアクセスが来たら、 staticController の helpAction を呼べ、という指定をしている。

この例はものすごい単純な例。実際はパラメータを渡したり、パラメータの書式条件を指定したり色々できる。
この辺りを一通り把握しておくと、アプリケーションをモジュール分けしたりする時もすんなり理解できると思う。

余談だけど、最近 zend は AMF も取り込んだし flash/flex との相性も良くなったみたい。

最終更新日 2008-08-20 23:46:39

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google