FuelPHP Modules化の手順 - HMVC

FuelPHP Modules化

HMVCとは

HMVCとは、モジュール化してMVC要素のグループを独立させる方法。
複数のモジュールを作ることができるため、大規模な開発でも管理しやすくなります。

コントローラロジックの再利用にも優れており、私はよくこれを用いて開発を行います。

基本構造


└─ app
   ├── classes
   │  ├── controller
   │  ├── model
   │  └── view
   └── views

通常のMVCですね。
FuelPHPでは、classes/viewの中にビューモデルファイルを置くことができるのも魅力的。

Modules化したときの構造


└─ app
   ├── classes
   │  ├── controller
   │  ├── model
   │  └── view
   ├── views
   └── modules
       └── admin(モジュール名:任意)
           ├── classes
           │  ├── controller
           │  └── view
           └── views

modulesディレクトリの配下には、複数のモジュールを置くことができます。

各モジュールにアクセスするためのURLは、
http://[ドメイン]/[モジュール名]/[コントローラ名]/[アクション名]
となります。

モジュールの設定

はじめに

Modules化して、コントローラー・ビューモデル・ビューを分割します。
今回はモデルは分割せず、全てのモジュールで共通のモデルを使用することにします。

モデルも分割したい場合は、コントローラー等と同様にmodulesディレクトリ以下に配置するだけです。

ディレクトリ構成

modules内に任意のディレクトリを作成し、通常のclassesやviewをコピーして配置します。


└── modules
    └── admin(モジュール名:任意)
        ├── classes
        │  ├── controller
        │  └── view
        └── views

configファイル変更

app/config/config.php ファイルでmodules_pathを設定します。


	'module_paths' => array(
		APPPATH.'modules'.DS
	),

namespaceの記述

名前衝突を避けるために、modules内のコントローラー(モデル)にnamespaceを記述します。
名前空間はモジュールフォルダ名と同一とする必要があります。


namespace Admin;
class Controller_Index
{

¥の付加

modules内のファイルからクラスを使用する場合、¥を先頭につけます。


//$name = Input::get('name');
$name = \Input::get('name');
  • このエントリーをはてなブックマークに追加
Related

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...

rbenv環境でRuby on Railsのアプリケーションを一瞬で自動生成

アプリケーション構築時に最初に行う手順 概要 アプリケーションを作成するまでの手順を記載しています。 rbenvなどの環境が設定済と仮定して話を進めま...

Rails devise・authority・rolifyで権限付きの認証機能

devise・authority・rolify 概要 3つのGemを使用して、権限付き認証機能を実装します。 gem インストール Gemfile ...

Rails devise で複数モデルの認証機能を実装

Rails devise で複数モデルを管理 概要 rails のログイン認証 Gem「devise」のインストール・設定方法を紹介します。 よく「d...
トップへ戻る