MatchBox for CodeIgniter 使い方 - 浜村拓夫の世界
CodeIgniterをHMVCでモジュール化 - 浜村拓夫の世界
MatchBox
http://codeigniter.com/wiki/Matchbox/
HMVC
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC/
なんか、HMVCだと思い通りの挙動をしなかったので、とりあえずMatchBoxにしておこう。
=Controllerのファイルと同じ名前のViewファイルを用意すると、読込みエラーが発生した。
●MVC以外のアーキテクチャー
↓NetPenguinさんの資料
HMVCは、Hierarchical MVC(Recursive MVC)の略。
階層型MVCという意味で、「PACを変形した状態」とのこと。
PAC (Presentation Abstract Controller) - 浜村拓夫の世界
PACとは、Presentation Abstract Controllerの略で、「MVCの階層的アーキテクチャー」
Flex/AIRでPAC的に実装するトライアル
HMVCはHierarchical-MVC(階層MVC)のことで、MVCをPAC化したようなものになっている。
CodeIgniterを階層型MVCにすると、以前作った機能を追加しやすくなって便利だ。
![]() | PHPフレームワーク入門―CakePHP/Zend Framework/symfony/CodeIgniter対応 (2009/05) 掌田 津耶乃 商品詳細を見る |
(追記)
CodeIgniterからフォークしたフレームワークのKohanaでも、階層型MVCを利用できるらしい。
modules [Kohana User Guide]
Kohana is easily extendable using modules.
Modules are reusable collections of related files that together add a particular functionality to an application.
Kohanaの基本動作覚書 - HMVC:モジュールの作り方
Kohanaはモジュール・ディレクトリだけでアプリケーションの作成が出来るようになっている。
この機能をLayered MVC -- HMVCというらしい。
ただし、「モジュール」部で扱えないKohanaのファイルはもちろん存在する。次の二種類がそれであるので注意。
module化できない例外
kohanaのapplication/config/config.php
kohanaのsystem/core/以下のファイル
さて、モジュール作成で必要な準備は
モジュールを利用可能にする
kohanaのapplication/config/config.php
の中の
$config['modules'] = array
(
MODPATH.'モジュール名'
);
を設定して、同名のディレクトリをmodulesディレクトリの下に作るだけだ。
Kohanaのモジュール機能は、
・一部モジュール化できない制約がある。
・モジュールを利用可能にするには、config.phpで設定する必要がある。
とのこと。
Kohanaと比べてCI+MatchBox/HMVCは、modules以下にMVC各フォルダ、ファイルを配置するだけで動作する仕組みなので、デプロイ(配備=公開するための追加や削除の作業)が楽かな?
MatchBoxとHMVCのソースコードを読んでみて、HMVCの方がシンプルで分かりやすいような気がした。
やっぱHMVCを使ってみよう。
…っていうか、Drupal以外でPACアーキテクチャーのPHPフレームワークってないのかな?
=機能の追加や削除が簡単にできればOK
- 関連記事
-
- PHPで数値(数字)を判定する方法
- NetBeansでPHP
- 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でファイル一括削除