(1) MatchBox
http://codeigniter.com/wiki/Matchbox/
(2) HMVC
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC/
MatchBoxは、以前のブログで取り上げた。
浜村拓夫の世界 - MatchBox for CodeIgniter 和訳
浜村拓夫の世界 - MatchBox for CodeIgniter 使い方
MatchBoxを使うよりも、HMVCを使う方が便利らしい。
![]() | CodeIgniter徹底入門 (2008/06/10) 河合 勝彦鈴木 憲治 商品詳細を見る |
●HMVCの使い方
インストール方法
CodeIgniterの学習 50 - HMVCモジュール拡張のインストールと改造をする
手順1)
Modular Extensions - HMVC からソースをダウンロードする。
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC/
手順2)
解凍したファイルの
* Controller.php
* Modules.php
* MY_Router.php
を、application/libraries に設置する。
インストールは以上。
これで既存のコントローラの設置場所以外に、
application/modules/モジュール名/controllers/モジュール名.php
のコントローラが
http://example.com/モジュール名/(メソッド名)/
で呼べるようになる。
モジュールのフォルダを作り、その中にMVCのスクリプトファイルを配置できると。
デフォルトのCIと、HMVCを導入したCIの違いについて、分かりやすく解説したスライドがあった。
NEKOGET PRESS - 第46回PHP勉強会@関東で発表をしてきました
CodeIgniter HMVC構造にしてみるお話
●HMVCの使用例
CodeIgniterを拡張したCIEXというフレームワークでHMVCが使われていた。
CIEXtended ユーザガイド › モジュール構造
CIEX のモジュール構造は CI ライブラリで人気のある HMVC をベースに作成されています。
CodeIgniterを使ったMyNETS2というSNSでHMVCが使われていた。
CodeIgniterをつかってMIXIアプリを作る - KuniTsujiのPHP開発日記
CodeIgniterを使ったフレームワークの拡張を行っておりましたが、現在は次のような感じ
1)MatchBoxライブラリを辞めて、HMVCを使ってモジュール化を実現
HMVCを使うと、予期せぬ動作(バグ)もあったらしい。
Controllerの_output()メソッドが使えなかったんです。
HMVCの場合、コントローラを独自にHMVCが用意しており、そこでのCIオブジェクトの保持方法に不具合があったということですね。
●階層化されたMVC
HMVCでCodeIgniterをモジュール化すれば、PACアーキテクチャーのDrupalのように、機能の追加や拡張を管理しやすくなるだろう。
浜村拓夫の世界 - PAC (Presentation Abstract Controller)
PACとは、Presentation Abstract Controllerの略で、「MVCの階層的アーキテクチャー」とみなせるものだという。
これを採用しているソフトには Drupal、Firefox、Eclipse などがあります。
Drupal は PAC であり、米アマゾンのウェブ開発カテゴリでの本のランキングに Drupal が入ってきていることからもその生産性の高さが伺い知れると思います。
Drupalは、ホワイトハウスのWebサイトにも使われている人気の高いCMSである。
ホワイトハウスの公式サイト,オープンソースのCMS「Drupal」を採用
スクリプトファイルを「たったの3個」配置するだけで手軽に使えるHMVCは便利そうだ。
今作っているWebサイトで、HMVCを早速使ってみることにしよう。
- 関連記事
-
- PHPで関数の呼び出し元を調べる方法
- DooPHPのコールグラフ
- PHPをC++に変換するHipHop for PHP
- PHPのプロファイラー「XHProf」の使い方
- 継承できるテンプレート「Twig」
- CodeIgniterのMatchBoxとHMVC
- 祝!1万部超え『PHP逆引きレシピ』プレゼントキャンペーン
- CodeIgniterをHMVCでモジュール化
- PHPで文字コードをSJISからUTF8に変換する方法
- PHPで配列の重複を削除する方法
- Fatal error: Allowed memory size of 16777216 bytes exhausted
- PHPのstrlen関数で全角文字が3バイトになる件
- PHPでファイル一括削除
- PHPで日時の大小比較
- CodeIgniter 1.7.1 日本語化パック