フォトアルバム

2009年7月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

なかのひと

アンケート

  • Do you Like?
    アンケート
    どのColdfusion用フレームワークが好き?
    ModelGlue:Unity
    ModelGLue
    Mach-II
    FuseBox
    LiteWire
    OnTap
    ColdBox
    OnAir
    cfWheels
    CFRails

    [PR]アンログ.jp 自動車保険

373news.com

想ひ出

  • Dvc00050
    携帯で撮った写真をアルバムにしています。

サムネイル

  • CF-OOP









  • ganymean.org









  • シナプス

Google Analytics

« 2005年6月 | メイン | 2005年8月 »

Model-Glue DTD

Model-Glueの公式サイトに、Model-GlueのDTDに関するエントリーがVer1.0のリリースにあわせてポストされた。
Wayne Graham's blogのエントリーと併用するとModel-Glueのxml定義が楽になりそう。

<!ELEMENT modelglue (config,controllers,event-handlers)>
<!ELEMENT config (setting+)>
<!ELEMENT setting (#PCDATA)>
<!ATTLIST setting name CDATA #REQUIRED value CDATA #REQUIRED>
<!ELEMENT controllers (controller+)>
<!ELEMENT controller (message-listener+)>
<!ATTLIST controller name CDATA #REQUIRED type CDATA #REQUIRED>
<!ELEMENT message-listener (#PCDATA)>
<!ATTLIST message-listener message CDATA #REQUIRED function CDATA #REQUIRED>
<!ELEMENT event-handlers (event-handler+)>
<!ELEMENT event-handler (broadcasts*,views*,results*)>
<!ATTLIST event-handler name CDATA #REQUIRED access CDATA #IMPLIED>
<!ELEMENT broadcasts (message*)>
<!ELEMENT message (argument*)>
<!ATTLIST message name CDATA #REQUIRED>
<!ELEMENT argument (#PCDATA)>
<!ATTLIST argument name CDATA #REQUIRED value CDATA #REQUIRED>
<!ELEMENT results (result*)>
<!ELEMENT result (#PCDATA)>
<!ATTLIST result name CDATA #IMPLIED do CDATA #REQUIRED relocate CDATA #IMPLIED>
<!ELEMENT views (include*,value*)>
<!ELEMENT include (value*)>
<!ATTLIST include name CDATA #REQUIRED template CDATA #REQUIRED append CDATA #IMPLIED>
<!ELEMENT value (#PCDATA)>
<!ATTLIST value name CDATA #REQUIRED value CDATA #REQUIRED overwrite CDATA #IMPLIED>

 

Model-Glue.xmlの拡張

Sean Corfieldのブログで、Model-Glue DTD がVer1.0のリリースにあわせて検討されているらしい旨を書かれていたが、Ver1.0RC1では今だリリースされていない。
そんなところに、Wayne Grahamのブログで、modelglue.xmlに、DOCTYPEを定義して拡張する方法が記述されていた。

ポイントは以下のとおり。
1.modelglue.xml内に、DOCTYPEを定義する。
2.外部拡張用フォルダとして、wwwroot内(もしくは、マッピングフォルダ内)にtempletesフォルダを作成する。
3.templetes配下にmodelGlueアプリケーションフォルダ:stockQuateを作成し、三つの拡張xmlファイルを作成する。
 1)config.xml
  2)controllers.xml
  3)event-handlers.xml
4.model.glue.xmlの定義イメージは以下のとおり。

<!DOCTYPE  [
     <!ENTITY mapping
"/modelgluesamples">
     <!ENTITY appName "StockQuote">
     <!ENTITY folder "stockquate">
     <!ENTITY hello "HelloWorld">
     <!ENTITY config SYSTEM "http://localhost/modelgluesamples/templates/stockquate/config.xml">
     <!ENTITY controllers SYSTEM "http://localhost/modelgluesamples/templates/stockquate/controllers.xml">
     <!ENTITY events SYSTEM "http://localhost/modelgluesamples/templates/stockquate/event-handlers.xml">
  ]>
    <modelglue>
     &config;
     &controllers;
         &events;
  </modelglue>

5.config.xmlの定義イメージは以下のとおり。

<?xml version="1.0" encoding="UTF-8"?>
  <config>
              <setting name="defaultEvent" value="&appName;" />
              <setting name="applicationMapping" value="&mapping;/&folder;" />
              <setting name="beanMappings" value="&mapping;/&folder;/config/beans/" />
              <setting name="viewMappings" value="&mapping;/&folder;/views" />
              <setting name="reload" value="false" />
              <setting name="reloadKey" value="init" />
              <setting name="reloadPassword" value="true" />
              <setting name="statePrecedence" value="Form" />
              <setting name="eventValue" value="event" />
              <setting name="modelGlueMapping" value="/ModelGlue" />
              <setting name="defaultExceptionHandler" value="Exception" />
              <setting name="debug" value="true" />
              <setting name="defaultCacheTimeout" value="5" />
       </config>

6.controller.xmlの定義イメージは以下のとおり。

<?xml version="1.0" encoding="UTF-8"?>
  <controllers>
      <controller name="myController" type="&mapping;.&folder;.controller.Controller">
          <message-listener message="OnRequestStart" function="OnRequestStart" />
          <message-listener message="OnRequestEnd" function="OnRequestEnd" />
          <message-listener message="DoHelloWorld" function="GetGreeting" />
          <message-listener message="DoStockQuote" function="GetStockQuote" />
      </controller>
  </controllers>

7.event-handler.xmlの定義イメージは以下のとおり。

<?xml version="1.0" encoding="UTF-8"?>
  <event-handlers>
      <event-handler name="Home">
          <results>
              <result do="Layout" />
          </results>
      </event-handler>
            <event-handler name="&hello;">
          <broadcasts>
              <message name="DoHelloWorld" />
          </broadcasts>
          <views>
              <include name="content" template="dsp.helloworld.cfm">
                  <value name="greeting" value="I am the default greeting." />
              </include>
          </views>
          <results>
              <result do="Layout" />
          </results>
      </event-handler>
            <event-handler name="&appName;">
          <broadcasts>
              <message name="DoStockQuote">
                  <argument name="DefaultSymbol" value="MACR" />
              </message>
          </broadcasts>
          <views>
              <include name="content" template="form.&folder;.cfm" />
          </views>
          <results>
              <result name="BadSymbol" do="BadStockSymbol" />
              <result do="Layout" />
          </results>
      </event-handler>
            <event-handler name="BadStockSymbol" access="private">
          <views>
              <include name="content" template="dsp.badStocksymbol.cfm" />
          </views>
      </event-handler>
            <event-handler name="Layout" access="private">
          <views>
              <include name="main" template="layout.main.cfm" />
          </views>
      </event-handler>
            <event-handler name="Exception">
          <views>
              <include name="body" template="exception.cfm" />
          </views>
      </event-handler>
  </event-handlers>

ModelGlue Ver1.0RC1

Model-GlueのVer1.0のRC1がここから入手できます。
ダウンロードするには、SVNクライアントが必要なようです。


Model-Glue+Tartan

Sean Corfieldの記事にあったサンプルアプリケーションGGCCをModelGlue+Tartanに移植してみた。
移植に際してのベースアプリケーションは、GGCC7(ModelGlue)+GGCC6(FuseBox4.1+Tartan)。
動作確認済コードは、GGCC8です。興味のある方はこちら から、どうぞ!

FuseBox4.1+Tartanの動作環境から大きく変更したポイントは以下のとおりです。

  1. LocalService.cfc内FunctionのReturnTypeを"void"から"struct"に変更
  2. ModelGlue用Controllerのinit( )FunctionにtartanProxyの初期化ブロックを追加。
  3. ModelGlue.xml内<broadcasts>セクションから、needMemberByIDとneedStatiiByIDをコメント化。

詳細は、ぼちぼちご案内します。

 

ログイン

  • コントロールパネルへのログイン
    アカウント:

    パスワード:

PR情報

  • [[PR]]
  • おすすめバナー

更新ブログ

google Search

  • Google
    blog.ganymean.org
    WWW

最近のトラックバック

Google

SHINOBI

Blog powered by TypePad
Member since 04/2005