目次

Ethnamの内部動作の概要

Ethnaは当初JavaのStrutsの構造を模倣して作られました。そのため、基本的な動作はStrutsに似ています。 (また,2004年ごろに流行ったPHPフレームワークの一つであるMojaviにも似ています。)

大雑把な動作イメージ

つまり、Ethnaを使ってアプリケーションを作る場合は

という流れになります。

もう少し詳しい内部動作

クライアントはアプリケーションのエントリポイントとなるスクリプト(www/index.php など)にアクセスします index.phpは以下のようなスクリプトで、Controllerを呼び出します。

<?php
require_once dirname(__FILE__) . '/../app/Sample_Controller.php';
Sample_Controller::main('Sample_Controller', 'index');

ControllerはAction Formというオブジェクトを生成します。このオブジェクトにはクライアントから送信されたフォーム値等のコンテナです。

Controllerはクライアントから送信されたパラメータに基づいて実行するアクションを決定し、対応するActioClassを生成、実行します。 なお、デフォルトでは"action_=true"というパラメータが含まれる場合、そのの部分の文字列がアクション名となります。

つまりindex.php?action_login=true なら login というアクションになります

Action ClassはAction Formを利用して、クライアントから送信されたフォーム値や、ビューに表示する変数値を設定します

Action Classは処理が終了すると、遷移先の名前をコントローラに返します

ControllerはAction Classからの戻り値(遷移先)に応じてビューオブジェクトを生成します

ビューオブジェクトは、Action Formからテンプレートファイルで利用する変数値を取得します

ビューオブジェクトがHTMLを表示します

以上で、何となくはイメージを掴めていただけたと思います。

詳しくはEthna_Controllerのコードを読んで見るとよいでしょう。 triger_WWWメソッドがEthnamの核となる部分ですので、そこを中心に読んでみるとよいと思います。