その後ですが、HMVCは一旦取り外してしまいました。
ごにょごにょしてたコードを一旦置いて、CodeIgniter1.7.1に対して、欲しかった機能を拡張するほうを優先しました。まだ私の理解力では足りない感じなので、順番に確実に進めていくことにしました。
この作業で、意識したのは次の3点。
(1)PCサイトと携帯サイトを構築するためのベースをつくる。
(2)PCサイトと携帯サイトをどう組み分けるか?を考える
(3)アプリとしての使い勝手と、アプリを組むために便利であることとのバランス。
(2)について。
愛読させていただいているCodeIgniter徹底入門では、携帯判定を行って、行った結果表示する情報量を減らす等の処理をして、モバイルとPCで両方使える掲示板の構築例がありました。コードを書く側から思えば、この方法のほうが、書くコードの量も少なくて楽です。そのようにしようと、サイトマップを作り始めたのですが・・・・・
実際アプリではなくてサイトとして考えると、PCと携帯を同時に考えるのは、結構複雑です。
携帯だけに実装したい機能、PCだけに実装したい機能、そしてそれらの機能に対する運用開始後の機能追加・・・を考えるとコントローラの中が結構複雑になってしまうし、作った人と運用後の機能追加をする人が違う場合には混乱しそうです。結局、コントローラを分けて、モデル、ライブラリは共通のものを使う方向で考えることにしました。。
モバイル対応が落ち着いたら、改めて挑戦したいと思います。
(=_=;).o(MyNETS2を素直に使えば良いとは思うんですよね・・・でももう少しそこに至るところまでを理解したいのです・・・・)
追記 2009.09.29
(=_=;).o0(追記の内容の方が、多いのでタイムスタンプを追記時間で書き換えました。)
やはりあきらめちゃダメだろうってことで、trac gitを用意。
とりあえずの携帯対応ができたCodeIgniter1.7.1を元にHMVCの組み込みを開始。
HMCV modular extensions 5219.zip
もう、HMVCエクステンションのバージョンがあがってる!!!
混乱して来たので、いままで触っていたものはそれはそれとして、置いておいて、
素の状態に、HMCV modular extensions 5219.zip を組み込んで、動くかどうか試してみた。
あっさりと、application/modules/{モジュール名}/以下のコントローラを読み込んでくれた。
また、モジュール名と同じコントローラ名でコントローラを作ったものは、コントローラ名を省略してくれている。モジュール名と違うコントローラ名の場合はURLが
モジュール名/コントローラ名/メソッド名
Machboxとほぼ同じ挙動になっている。
あとはmodelが動くかどうかも確認をしてみた。
- welcomeなモデルをつくって試してみた。
(なんだか呼ばれたのが嬉しい感じのテキストを返すモデルw) - application/modules/{モジュール名}/models/model_welcome.php
- application/modules/{モジュール名}/controllres/welcome.phpから呼び出せた。
class Model_welcome extends Model { function Model_welcome() { // Call the Model constructor parent::Model(); } function get_welcome() { $text = "Oh! Wecome Model !!!!"; return $text; } }
動いてほしいと思っていた部分が確実に動く事を確認できたので、
次は中身を理解するためにコードを読むことにしてみます。