参考書をほとんど読んでいなかったことが露呈。
ネットで検索していて、Zend Frameworkのフロントコントローラでルーティングを指定できる機能があることを知り、参考書の索引から該当ページを読み直す。
きっちり書いてある...
基本的なことを動かすのに手一杯でそこまでやっていなかったんだな、きっと。
これは、パスを解析して、どのモジュール、コントローラ、アクションにどんなパラメータで飛ばすかを動的に(静的にも可)定義できるというもの。
だから、デフォルト・コントローラをindex以外にもできるし、アクションを任意に設定できる。URLを引数の値だけの構成で指定させ、ルーティング時に引数の名前を当てはめてコントローラに渡すこともできる。
NULL値が来たときの値でさえ設定できるとは至れり尽くせりだ。これなら、ネットにあるサービスのようなカッコイイユーザ名を使ったURLでアクセスできるページを構築できる。
例えば、私の再生履歴の表示ページは、今回の設定見直しを一切行う前には、
http://kimland.homelinux.org/zend/controller/count?id=450792
という形のものであった(IDは内部で使ってるDBの一意キー、テスト用)。
現在は、
http://kimland.homelinux.org/KIM-Tunes/count/kim
という形。countがコントローラ名。デフォルトコントローラにあえてしていないのは今後の機能展開で問題が出ないようにあえて今の段階ではしていないだけで、なくすことも可能。idのGETパラメータで渡していたユーザ情報は、URLの最後いユーザ名の形で渡すようになった。この両者はデータベース上で繋がっている。テスト用だし、他にユーザがいないので、Webで設定するインタフェースはないけれども。
フレームワークは奥が深いなぁ、と思ったこの2日間であった。
コメント