2008/5/27 火曜日 by kouichi
memonoのUIはほぼGoogle Web Toolkit(GWT)、GWT-EXTを使って作成しています。
使ってみての感想ですが、JavaScriptで開発することに比べてのメリット、デメリットは
(メリット)
・ほぼクロスブラウザ対応してくれる
・コンポーネントが多く提供されていて作りやすい、再利用しやすい
・Javaでかける
(デメリット)
・はまったときにデバッグしづらい
・出力されるJavaScriptのコードが大きい
といった感じでしょうか。
Java使いにとっては、JavaScriptをJavaでかけるのが最大のメリットだと思います。
はまりどころはいくつかありましたが、立ち上げから結構さくさくと作れました。
一番の難点は
・はまったときにデバッグしづらい
です。
コードを自動生成するプログラムではどれも同じ問題を抱えていると思いますが、Railsなどとは違って出力されるソースがかなりでかいので、追いかけるのに手間取ることがありました。
Hostedモードも環境が大きくなるとメモリが足りずなかなか動かなくなるので、先にデバッガー環境(自分の場合はdivにログ出力する環境)を先に作っておくと便利かと思います。
Posted in memono.jp, GWT | No Comments
2008/5/26 月曜日 by kouichi
認証処理などのように、各リクエスト共通の処理などを書いておくのに、良い方法はないかなぁと調べてみると、Zend_Controller_Action::preDispatchというのがありました。
abstract class AbstractController extends Zend_Controller_Action
{
public function preDispatch()
{
parent::preDispatch();
$this->_auth();
}
private function _auth()
{
・・・・
}
}
と、後はこのクラスをControllerのスーパークラスとして使えばOK。
また、ログインロジックもZend_Auth_Adapter_DbTableを使うとなかなか素敵にできました。
private function _login(){
$request = $this->getRequest();
$account = $request->getPost('account');
$password = $request->getPost('password');
$adapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table_Abstract::getDefaultAdapter(), 'ユーザーテーブル', 'アカウントフィールド名', 'パスワードフィールド名','password(?)');
$adapter->setIdentity($account);
$adapter->setCredential($password);
$result = $adapter->authenticate();
echo 'identity = ' . ($result->isValid()?'valid':'invalid');
}
ただ、Zend_ACLと組み合わせるときはどうするのがBetterなんでしょう?
$result->getIdentity()
のIDからユーザー情報を再読み込みというのが定石でしょうか?
さらに勉強。
Posted in PHP | No Comments
2008/5/23 金曜日 by kouichi
仕事でPHPを使うかも知れないので、せっかくなのでZendFrameworkをはじめました。
こちらやこちらあたりを参考にサンプルを動かしてみました。
DB周りのサンプルもさくっと動かしました。
そこで疑問点が1つ。
Webアプリを作るときにディスパッチャーであるindex.phpの実装をユーザーにゆだねている点、DBのアクセッサが結構下位レイアな点など、少しFrameworkとしては流動性が高い気がするけど、スタンダードはどのような実装なんだろう?という点です。
例えばindex.phpは↑サンプルで2パターンそれぞれ違いますが、どっちがスタンダードなのだろうか?とか。
まだ、サンプルを動かしたレベルなのでもう少し勉強します。
Posted in PHP | 3 Comments