Top / Framework / Ethna / Module


 #setlinebreak(on)
 * Ethna アプリケーションモジュール化 [#e12ced22]
 #htmlinsert(googleAdsense.html)
 
 まぁ、何となく。
 実験段階なので真に受けないように。(^_^)
 
 ** 概要 [#l0b9bc77]
 
 ケータイのページならEthna標準で事足りるかもしれないが、
 PCページだと必ずしも「単一ページ・単機能」という訳にはいかない。
 
 PCページは見やすくするために、
 機能をボックス単位で分けていることが多い。
 そのボックスを一つのモジュールとして開発することが出来れば、
 再利用性、メンテナンス性が向上する・・・かも。
 
 ちょっとやってみよ。
 mojaviのmoduleとはものが違うので悪しからず。
 
 *** モジュールの概念 [#a3b66767]
 
 ここでいうモジュールを一言で言うと、
 [MVCひとかたまり]
 って感じ。
 
 通常のEthnaだと、
 #ref(Ethnaモジュール概念1.png)
 
 こんな感じ。
 概念的にはリクエストをコントローラが受け取って、
 アクションとビューを動かすのだが、
 実際はアクション、ビューの順番で動いているに過ぎない。
 
 
 そのアクションとビューを一つの固まり「モジュール」として扱い、
 モジュールをアクションから呼び出せるようにする。
 #ref(Ethnaモジュール概念2.png)
 
 こうすれば、
 モジュールごとにテンプレートを設置できるのでメンテナンス性が向上。
 プログラム単位が小さくなるので再利用性も向上する。
 
 
 よね。。。
 
 
 *** 構築 [#ka87fc1d]
 
 といっても、
 何も難しいことをするわけではない。
 単にコントローラを二つ用意するだけ。
 
 用意するのは
 ・通常用コントローラ
 ・モジュール用コントローラ
 
 それぞれ別次元で命名していけばいい。
 たとえば「action_[アクション名]=true」というデフォルトのリクエストを使うとすると
 「action_[アクション名]=true&module=[モジュール名]」とする。
 
 モジュール用コントローラはこんな感じ。
  class Project_Module_Controller extends Project_Controller
  {
     function _getActionName_Form()
     {
         if (array_key_exists('module', $_REQUEST) == false) {
             return null;
         }
         return $_REQUEST['module'];
     }
  }
 
 デフォルトでブランクのものを返すようにしておく。
 そしてアクション内のどこかで、
 エントリする。
 そしてアクション内のどこかでエントリする。
  Project_Module_Controller :: Main(Project_Module_Controller', 'blank');
 
 まぁ、セキュリティ云々の問題が幾つか残ってるけど、
 これでいけそうな気配。
 ちょっとこれで作ってみよう。
 
 
 #comment


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較