物忘れがひどい凡人のIN THE LIFE

物忘れがひどい凡人のIN THE LIFE

(´ ▽`).。o♪♪ ボケ~

Amebaでブログを始めよう!
箇条書きでスマヌ。。。('・ω・')
おおよそ上から順に流れる。

・コントローラ(app/action/***)実行
・アクションクラス内のprepare()メソッドが実行
 (prepare():自動入力処理。処理が記載されている場合のみ)
・アクションクラス内のperform()メソッドが実行
・遷移名が返される
 (遷移名:遷移先のアクション名?)
Ethna独自のSmartyの使い方があるようなので、
そのまとめをここにメモっときます。( ・ω・)ノ


・{$script}
{$script}はテンプレート表示前にEthnaフレームワークが設定する変数で、現在実行中のPHPスクリプトを表します
もちろん、/index.phpで全てを処理する場合は、action="/"と記述しても全く問題ありません


・name="action_login_do"
(<input type="hidden" name="action_login_do" value="dummy">)
hiddenタグの"action_login_do"は、このフォームをsubmitした際に、「login_do」というアクションを実行することを表します
「login_do」というはStrutsの慣習をそのまま使っているだけなので、「login」と重ならなければ「login_exec」でも「login_submit」でも何でも構いません


・{form.フォーム項目名}
例えば、value属性に下記のように設定すると、フォームで入力した値が失われずに表示される、
<input type="text" name="mailaddress" value="{$form.mailaddress}">


・エラーメッセージ
①{$errors}
アクションクラスに指定した$formの設定に対してエラーが検出された場合、
{$errors}のSmarty変数に割り当てられる。
※配列で返されるので{foreach}でループさせる必要がある。

②{message name="フォーム名"}
特定のフォームに対してのエラーメッセージを出力したい場合は、{message}を使う。
■Ethna アプリケーション構築手順(簡易)まとめ

具体的な説明は下記マニュアルサイトに記載があるが、
ここでは簡潔に流れをまとめておく。
→→→ Ethnaマニュアルサイトはこちら ←←←



1.アプリケーション作成

アプリケーションIDを決める。ここでは、「ethnatest」としておく。
下記コマンドでアプリケーションを作成。

ethna add-project -b /[配置先パス]/[アプリケーションID] [アプリケーションID]
ex)ethna add-project -b ./ethnatest ethnatest



2.action定義追加

app/Ethnatest_Controller.php を編集。
$action = array();

$action で、アクションとactionクラスの関連付けを行う。



3.actionクラス記述
app/action/ に、actionクラスを作成する。

※コマンドでの作成方法
ethna add-action ***_++++
→app/action/***/++++.php として生成される。
 クラス名は、{$アプリケーションID}_Action_***++++。



4.view定義追加
app/Ethnatest_Controller.php を編集。
$forward = array();

$forward で、viewクラスとテンプレートの関連付けを行う。



5.viewクラス記述
app/view/ に、viewクラスを作成する。

※コマンドでの作成方法
ethna add-view ***_++++
→app/view/***/++++.php として生成される。
(同時にテンプレートも生成される)

※クラス内に記述する preforward()メソッドはテンプレート表示前に呼び出され、
テンプレートに関連した各種データ(セレクトボックスの表示項目等)を設定することが可能。



6.テンプレート記述
template/ja_JP/ に、テンプレを作成する。

●Viewクラスとテンプレ(Smarty)のデータの関連性

 ・Viewクラス
 $this->af->setApp('now', 'test');

   ↓

 ・テンプレート
 {$app.now}

   ↓

 ・結果
 「test」と出力される。

とりあえずさくらのレンタルサーバでもEthnaの設置ができた。

但し、アプリケーションをドキュメントルートの外に設置したかったが、
シンボリックリンクが貼れないため、ドキュメントルート内にアプリケーションごと設置しないといけない。。。

なので、運営するならば、やはり専用サーバでないといかんのかも。
Ethnaのインストールに必要なPEARライブラリのインストールをするのだが、
さくらのサーバにあるPEARは古いらしいので、自分の権限下にインストールする必要があった。

が、Ethnaインストールに影響するところが多々見られたのでここにまとめとく。

※PEARインストールは、下記ブログ記事を参照
 Ethna インストールを試すが・・・


●PEARの各種ディレクトリのパス変更
※***:アカウント名

・php_dir
(旧)/usr/local/php/5.2.14/lib/php
(新)/home/***/pear/php
pear config-set php_dir /home/***/pear/php

・bin_dir
(旧)/usr/local/php/5.2.14/bin
(新)/home/***/pear/bin
pear config-set bin_dir /home/***/pear/bin

・doc_dir
(旧)/usr/local/php/5.2.14/lib/php/doc
(新)/home/***/pear/docs
pear config-set doc_dir /home/***/pear/docs

・data_dir
(旧)/usr/local/php/5.2.14/lib/php/data
(新)/home/***/pear/data
pear config-set data_dir /home/***/pear/data

・temp_dir
(旧)/tmp/pear/temp
(新)/home/***/pear/temp
pear config-set temp_dir /home/***/pear/temp

・test_dir
(旧)/usr/local/php/5.2.14/lib/php/test
(新)/home/***/pear/tests
pear config-set test_dir /home/***/pear/tests