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は終わった。

チュートリアル「コントローラーの作成」

これはトラブルなしに完了。ここでやっていることのポイント。

  1. htmlファイルは,テンプレートでありビューである。
  2. <!--{$hoge}--> というようなタグ(smartyタグというらしい)に値を設定する。
  3. コントローラーは,xFrameworkPX_Controller_Action を継承して作る。
  4. コントローラーのexecute メソッドに処理を記述する。
  5. コントローラーの$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 にそう書いてあるから。

 

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。