こんにちは、管理人のハルです。
すいません、忙しくて前回の投稿からだいぶ間が空いてしまいました。
CFCが実装されてから、あまり触れなくなったcfmoduleと、似て非なるcfinclude。
今回はこの2つについてお話をしたいと思います。
cfmodule は 入出力を定義して、引数と戻り値を使った処理が可能なユーザ定義関数です。
対して cfinclude は cfincludeで指定したファイルの中身をそのままHTMLとして出力するための機能です。
ではcfmoduleから具体的に見ていきましょう。
<!--- mod.cfm ---> <!--- 初期値 ---> <cfparam name="Attributes.prmDateTime" default="#Now()#"> <cfset Caller.rtnDateTime = DateTimeFormat(Attributes.prmDateTime, "yyyy/mm/dd hh:MM:ss")>
まずは cfmodule で呼び出されるUDF側を作成します。
単純に引数で渡された日付に対してフォーマットを整えて呼出元に返してあげるだけの処理です。
<!--- test.cfm ---> <cfmodule template="mod.cfm" prmDateTime="#Now()#"> <cfoutput>#Variables.rtnDateTime#</cfoutput>
呼出側は cfmodule で呼び出すUDFが鬼呪されたファイル及び引数を指定します。
戻り値があれば、戻り値は接頭辞Variablesの変数として格納されるので、cfoutputで中身を見てみます。
今日の日付が、mod.cfm で指定したフォーマットで出力されていますね。
cfmodule はこのように呼出元に処理結果を返してくれる動きです。
代わって cfinclude を見てみましょう。
<!--- inc.cfm ---> <h1>これはインクルードされる文章です。</h1>
CFの処理を書いてもいいのですが、まずはHTMLで試してみます。
<!--- test.cfm ---> <cfinclude template="inc.cfm">
呼出側ではファイルのパスを指定するだけです。
cfincludeを記述した位置に、指定したファイルの内容が出力されます。
呼出先にCFの関数や変数を書けば、CF側で処理されて出力されます。
似て非なるcfmoduleとcfincludeですが、CFCが実装されてからはあまり利用しなくなった印象です。
私の勤務先では、cfmodule は単一処理の共通化に過去よく利用しておりました。
上記でご紹介した記述以外にも様々な記述方法があると思います。
ぜひ皆さんもColdFusionでプログラムを楽しんでみてください。
それではまた次の機会に。