箇条書きでスマヌ。。。('・ω・')
おおよそ上から順に流れる。
・コントローラ(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}を使う。
そのまとめをここにメモっときます。( ・ω・)ノ
・{$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マニュアルサイトはこちら ←←←
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
さくらのサーバにある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
