Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
xFrameworkPX を使ってみる
ExtJSの勉強を始めるに当たり,サーバーサイドは,CakePHPでやろうと思っていたが,xFrameworkPX という和製フレームワークを知り,こちらを勉強してみることにした。勉強初日のメモ
apache設定でハマった。
インストール後,開発環境のxamppの設定を,ドキュメントに従って設定していた。
apacheの設定でuserdirを有効にして,プロジェクトごとにuserを切り替えると便利だよとのことで,そうしてみようとしたが,403エラーが出た。ちゃんと書いてある通設定しているのになぁと思いながら,httpd.confに
<Directory "D:/UserDir"> Allow from all </Directory>
を追加したら直った。でも,こんなんでいいのだろうか。もちっと勉強しとこ。
チュートリアル「簡単な仮想スクリーンの作成」
チュートリアルをやってみようとした。まず,インストール直後のトップページに説明があるように,temporaryのバインド転送設定を無効にするため,configs/filetransfer.pxmlを変更して,webappにindex.htmlを設置したけど,設置したindex.htmlが表示されない。
いろいろやっても表示されない。
そこで,cacheフォルダの中身を手で削除。すると表示された。ただしくキャッシュをクリアする方法ってないんだろうか。今後,cacheに悪さされることってないのだろうか。やや不安。
とりあえず,チュートリアルのその1は終わった。
チュートリアル「コントローラーの作成」
これはトラブルなしに完了。ここでやっていることのポイント。
- htmlファイルは,テンプレートでありビューである。
- <!--{$hoge}--> というようなタグ(smartyタグというらしい)に値を設定する。
- コントローラーは,xFrameworkPX_Controller_Action を継承して作る。
- コントローラーのexecute メソッドに処理を記述する。
- コントローラーの$this->set メソッドで,ビューに値を渡すことができる。
ビューの拡張子がhtmlなので,ctpとか使うcakeよりもやりやすいかも。
チュートリアル「パラメータの取得」
GET/POST/Cookie/Sessionをセットしてみると,うまく動く。
だけど,「セッションに値を設定する」を一旦クリックすると,その後「セッション削除する」をしても,他の呼び出しをしたらまたセッションに値がセットされてしまう。なぜだろう。
// セッションデータの破棄 $this->Session->destroy(); // または //$this->Session->remove('session1');
となっている部分の,$this->Session->destroy(); をコメントアウトして,$this->Session->remove('session1'); を生かしたらちゃんと消えた。Session->destroy() はうまく動いてないのかな。今後の様子を見てみよう。
ここで初めて,.index.php 以外に .cockie.php という別なコントローラーが登場。このコントローラーが発火するのは,/cockie.html へのアクセスがあった場合になる。
ビューのindex.htmlの25行目26行目でこのコントローラーを呼び出すところがある。
<p><a href="./cookie.html?clear=true">Cookie削除する</a></p> <p><a href="./cookie.html?set=CookieTestData">Cookieに値を設定する</a></p>
これを受けて,.cockie.php の中では set がセットされていたら,その内容を setcookie し,clear がセットされていたら,setcookieで有効期限切れに設定しているみたいです。
.index.php の中では,$this->get とか $this->post とか $this->cookie とか $this->cookie でそれぞれの値にアクセスしています。
これらのプロパティは,
$this->get->param
のように->に続いてパラメータ名を書くだけで,アクセスで着るみたいです。便利ですね。
チュートリアル「コンポーネントによるコントローラーの拡張」
チュートリアルページに「controllers下に、次のcomp.phpを設置します。」と書いてあるとおりに,やると
Class comp が見つからないというエラー画面が....
ドキュメントのユーザーコンポーネントの項目を見てみると,
.comp.php
とこれもドットで始めないとだめだとわかり,ファイル名を変更したら解決。
チュートリアル「モジュールの作成」
ちゃんと動きました。モジュールのファイル名がまたドットで始まっていないので,こりゃまたアレかと思ったら,モジュールに関してはドットで始めなくていいのね。(^^;
チュートリアル「ビヘイビアによるモジュールの拡張」
そのまま実行したら。
SQLSTATE[42000] [1049] Unknown database 'myapp'
とのエラーが発生。モデルに
public $usetable = false;
を追加したら動作した。デフォルトのデータベース名がmyappになっているんだけど,これは,configs/database.pxml にそう書いてあるから。