フレームワーク初心者がEthnaを使いこなすための3つのコツ
- アクションフォームを制す者はEthnaを制す
- 「プラグイン」、「フィルタ」は最初は理解できなくても気にしない
- Ethna本体のソースコードを読もう
アクションフォームを制す者はEthnaを制す
アクションフォームを理解し使いこなすことが、Ethnaを使いこなすカギです。Ethnaでの開発をはじめると1画面につき、次の3点セットをバリバリ記述することが、主な作業になると思います。
- アクションクラス
- アクションビュー
- テンプレートファイル
私は当初、アクションフォームというのは、単に入力値をチェックするだけものだと思っていました。
アクションフォームクラス内で、入力値を定義しておいて、
var $form = array(
'id' => array(
'type' => VAR_TYPE_INT,
),
'name' => array(
'type' => VAR_TYPE_STRING,
),
);
同ファイルのアクションクラスのprepare()内で、入力チェックをし、判定結果によって遷移先を振り分ける。
function prepare()
{
if ($this->af->validate() > 0) {
// バリデーションエラーだったら、入力画面に戻す
return 'input';
}
...
}
しかし一方で、アクションフォームには、アクションクラスやアクションビューからSmartyに値を渡すという役割もあります。
//ビュークラスなどで
$this->af->setApp('name' => 'DQNEO');
//tplファイルで
{$app.name}さん、こんにちは
また、便利なフォームヘルパも、アクションフォームが密接に絡んでいます。
//tplファイルで
{form ethna_action="foo"}
{form_input name="mailaddress"}
{/form}
このように見ていくと、アクションフォーム=入力チェックという認識は、アクションフォームの一側面しか見ていないと気づきました。
アクションフォームというのは、ユーザの入力、アクションクラス、ビュークラス、テンプレートファイルなどを含めた、Ethna全体に関わる何かなのです。
狭義には、「アクションクラス、ビュークラス、テンプレートファイルの3者間でデータを共有するための入れ物」です。
しかしもっと広い視点で見ると、「アクションフォームこそが、Ethnaの中心であり、Ethnaという太陽系の太陽なのだ。」とわかりました。
というわけで、アクションフォームを理解することが重要です。
アクションエラーも重要
同じような理由で、アクションエラーも重要です。アクションフォームとアクションエラーをきちんと理解すれば、頭の中のもやもやがかなりすっきりします。
公式ドキュメントを読んだだけでは、なかなかアクションフォームやアクションエラーの実体が見えてこないので、ぜひソースコード(Ethna_ActionForm.phpとEthna_ActionError.php)を読みましょう。
プラグイン、フィルタは最初は理解できなくても気にしない
「プラグイン」「フィルタ」という用語が、Ethna本や公式ドキュメントによく登場します。最初のうちは理解できないかもしれませんが、気にしないでください。
Ethnaにおいて、「プラグイン」「フィルタ」は、1つの言葉で2つの違う意味が(同音異義語みたいなもの)あり、初心者を混乱させます。
フィルタ:
1.アクションフォームで入力チェックの際に行われる「文字列変換機能」
2.Ethna本体の実行前や実行後、アクションの実行前や実行後に走らせる特別な処理 (実行時間計測、携帯電話の機種判別など)
プラグイン:
1.Ethna本体のプラグイン機構
2.Smartyのプラグイン機構
ソースコードを読んだり開発したりしてるうちに、いつかわかってきますので、最初は無理に理解しなくてよいと思います。
MovableTypeやPukiwkiもそうですが、プラグインを使わなくても充分便利ですし、いろんなことができます。
まずは基本機能を使いこなせることを目指しましょう。
余談ですが、「フィルタ」に関しては1を「フォームフィルタ/入力フィルタ」、2を「アクションフィルタ/アプリケーションフィルタ」など適と、適切な名前に変更した方がよいと思います。
Ethna本体のソースコードを読もう
フレームワークのソースコードを読むなどという行為は、一見大変そうに見えます。上級プログラマやハッカーのやることだと思っていました。
ところがEthnaのソースコードは大変読みやすいです。
Ethnaがちょっと使えるようになってきたら、ソースコードを読むことをオススメします。
- 読みやすい。難しいコードが出てこない
- ファイル数が少ないので全体を理解しやすい
- マニュアルやEthna本を読むより、ソースコードを見たほうが早いことがある
読みやすい。難しいコードが出てこない
難しいコードや関数はほとんど出てきません。「すごいプログラマはすごいコードを書かない」と誰かが言っていましたが、まさにそのとおりです。
メソッドや変数の命名も大変シンプルでわかりやすいです。
(コードのコメントが日本語であることも心強いです。 )
PHPのコードを書く上でかなりお手本になります。
試しに、Ethna_ActionClass.phpを開いてみてください。
コードのあまりの短かさに唖然とするでしょう。
「え、アクションクラスって、たったのこれだけ?」
他にも、Ethna_ActionError.phpなんかもかなりシンプルです。
マニュアルよりソースコードの方が短いくらいです。
$this->ae->add()と$this->ae->addObject()の違いをすぐ忘れてしまう人は、一度アクションエラーのソースコードを覗いてみてください。
一発でモヤモヤがすっきりします。
私はPHPを初めてまた半年ほどですが、Ethnaのソースコードはゆっくり読めば理解できます。
「PHPを極めてからEthnaのコードを読もう」などと身構える必要はありません。
ファイル数が少ないので全体を理解しやすい
これもありがたいことです。Ethnaの全体像を理解するには、Ethna_Controller.phpの_trigger_WWW()を見てみてください。
ここだけ見れば、Ethnaの全体の流れがよくわかります。
ここを見た後で、アクションフォームなり、アクションエラーなり、自分でトピックを決めて読み進んでいけばよいと思います。
私は主要なファイルのソースコードを印刷して、カバンに入れて持ち歩いています。
ソースコードが短いので、印刷してもほんとに薄いです。(A4一枚に両面2ページずつ印刷している)
混んでる電車の中で読むにも都合が良いです
マニュアルやEthna本を読むより、ソースコードを見たほうが早いことがある
Ethnaはドキュメントが少ないですが、たいていのことはソースコードを見ればわかります。知りたいことをGoogleで検索しまくっても全然見つからないとき、ソースコードを見ると数分でわかった、ということがよくあります。
まとめ
Ethnaは初心者にやさしいフレームワークです。みんなEthnaを使いましょう!
関連記事:
5分でまっさらなWindowsにEthnaをインストールしてHello Worldを表示する方法
EthnaSmarty - WindowsにEthna+Smartyを簡単にインストールするツール
カテゴリ:
Ethna