ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    最新の広告

    VPSでWebサイトを作る


    ドメイン名を取得する


    プログラミングの質問サービス


    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    FC2ブログ 管理画面


    with Ajax Amazon

    CodeIgniterのMatchBoxとHMVC

    このエントリーをはてなブックマークに追加
    CodeIgniterのMVCをモジュール化するライブラリである「MatchBox」と「HMVC」を使ってみた。

    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対応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
    関連記事
    このエントリーをはてなブックマークに追加

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    https://hamamuratakuo.blog.fc2.com/tb.php/463-59d023ca