ここで提示する構成はサーバー側(PHP)のためのものである。 クライエント側のためのものではない。クライエント側の構成は templatesやtransition effectsやdialog boxなど 多岐に渡り、そのごとに構成していかなければいけない。 =========================================== [Folder] == Main Folders == \lib CComponent \config config.env config.db \components \cache == entery point == \cn \codegen \install ================== =========================================== How to invoke a program from an entry point ------------------------------------------- include("..../config.env.inc.php"); include("..../lib/sys/index.inc.php"); CComonent::exe(array( "scope"=>"iine-load"/"iine-client"/"iine-server" (optional, default is "main") "start component"=>"start component name", (optional) "optional component container folder"=>"....." (optional) "optional components"=>array( "component", "component", "component", "component", ..........., ......... ), )); =========================================== "scope"と関連づけられたコンポーネントのリストを作る。 [Cancel] "scope"と関連づけられていなくても、"optional components"で指定されたコンポーネントはリストに入る。 [Cancel] (つまりリストのメンバーは、コンポーネント側とscope側の両方から指定できる) このリスト内のスタートコンポーネントは"start component"で指定される。指定されない場合は、"main"がディフォルトである。 リスト内では、同じ"cmpname"を持つコンポーネントは最新のバージョンのみがリスト内にはいる。 ------------------------------------------------------ 各コンポーネントフォルダがそれぞれ、moduleフォルダをもつ /component folder /moudule folder A /moudule folder B /moudule folder C /moudule folder C ------------------------------------------------------ どの"scope"でどのmoudule folderを使うか決める表を持つ "scope"=>array( "scope1"=>array( "moudule folder A"=>array( "CClass001", "CClass002", "CClass003", ), ), "scope2"=>array( "moudule folder X"=>array( "CClass101", "CClass102", "CClass103", ), ), ------------------------------------------------------ 各moduleフォルダは以下のフォルダをもつ /pcf (PHP code files) /html /css /js /img /locale (PHP) /cfg (PHP) ------------------------------------------------------ "moudule folder A"=>array( "CClass001", "CClass002", "CClass003", ), クラス名が記載されたclassは__constructを呼ぶ。 この中でCCMS::bind("(event名)",$this,"method名"); を列記する。 ------------------------------------------------------ 各moduleフォルダの中にstart.inc.phpがあったらそれをinvokeする。 start.inc.phpに中は大概、CCMS::trigger("app-start",$data); である ------------------------------------------------------ scopeフォルダ内には、記載されていないmouduleも存在する、 これらはダイナミックモジュールである。 ダイナミックモジュールの役割は、 loadMod((scope1)(moudule folder B"))のような形で、 そのmoduleのindex.inc.phpを読み込む、auto_loadできるようにする。 ------------------------------------------------------