2009年12月12日土曜日

Simple@Idx 2009/12/12

今年最後のSimpleミーティング。
内容は、
◆jQueryでフォームのUp/Down
◆PHPでセッション使ってDBのCRUD
◆CentOSがインストールできないよ


jQuery使ってフォームUp/Down

いい加減に飽きてきたこのプロジェクト。昨日思いついたことを試してみた。
セレクトボックスで不振な挙動を示すのは、イベントが終了しきっていない間にフォーカスを変えてしまうからではないか?と思って、下記のサイトを参考に、jQueryで強制的にイベントをストップしてみた。
http://stackoverflow.com/questions/652495/jquery-multiple-event-handlers-how-to-cancel

次のエレメントにfocusする前に
event.stopImmediatePropagation();
を発行したのですが、結果は・・・だめでした。


PHPのクラス::sess_crud

自作のDAOライブラリを便利に使うdao_crudなるクラスを使っている。これを使うとDBデータの読込・登録・修正・削除を統一的に扱えて、かつエラーメッセージを適宜設定してくれるところが便利。

が、セッションを使って対応しようとすると、ベースとしているクラスでセッションに保存するのが非常に面倒であった。俗に言う、遅延静的束縛(Late Static Binding)なる問題がPHPで解決されるまで待つことにしていた。

コードのイメージは↓の感じ。

class dao { 
  // セッションに保存するメソードを作成する
  function saveSession() { ...} 
}

class table extends dao {
  // 適宜テーブルにアクセスするメソードを作成
}

$dao = new table();
$dao->saveSession();

saveSessionで、データをセッションに保存するわけなです。ところがtableが複数ある場合でも、毎回同じセッション名を使うことになってしまう。なぜならばsaveSessionのあるdaoクラスから継承されたクラス名がわからないため。

で、PHP5.3.0で、地厭世的束縛遅延静的束縛が使えるようになったのですが・・・
これまた先日思いついたですが、5.3.0より前でも問題ないということに気がついた。
イメージとしては・・・

$dao = new table();
$crud = new dao_crud( $dao );
$crud->saveSession();

この「crud」なるクラスでDAOを持つので、DAOのクラス名がわかる。セッションにデータを保存する際、DAOのクラス名を使えば汎用のクラスがかけることに気がついた。←気づくの遅すぎorz

そこで、コンセプトコードと称して一度も動かさずにゴリゴリとコーディング。


◆CentOSの起動ができない

話し変わって、先週CentOSのインストールに失敗。

DVDからブートしようとして「Boot...」は出るのだけど、その後キーボードの入力ができない。Enterを押そうとも「TEXT」と入力しようとも無反応。指をくわえて30秒すると目の前にMS Windowsが起動してしまうという・・・

そんな話をしながらググッたら、それらしいのを発見。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a032hpetdisable.html
現象としては似てます。

もうひとつ。
http://slashdot.jp/comments.pl?threshold=1&mode=flat&commentsort=4&sid=424915
原因はわからないみたいですねぇ

0 件のコメント: