2010年10月22日金曜日

PHP5.3でJavaScriptのようにメソードを上書きする(ように見せる)方法

JavaScriptをしばらくいじくった後、PHPに戻ると、一旦メソードを上書きでいないのにいらいらします。継承するか、インスタンス化して別クラスに委譲して別メソードをかぶせる、とかぐらいしか出来ません。

で、PHP5.3のクロージャー(無名関数)と__callを使って、
メソードを上書きできる、ように見せることが出来ました。


2010年10月2日土曜日

Simple@Idx 2010/10/02

今回のSimpleは朝倉さんの事務所にて。
自転車で4km。明大前→下北沢経由で16kmに伸ばしてきました。

前回から、Html5のWeb Sql Databaseと格闘。
昨日、やっと動き始めました。

で、Simpleでは残りの開発。

サーバー上のDBからデータをダウンロード
→ローカルのWebSqlDBにデータを登録。
→Html5+JavaScript(jQuery)のみでデータの表示・修正。
→データのアップロード、サーバー上のDBを書き換え。

までできました。

これで
-差分アップロード(修正した部分のみの変更)
-参照関連の変更(別項目へのリンクの変更)
ができるようになりました。

まだ新規データの登録ができてませんので、
次回への宿題?ということになりました。

2010年8月17日火曜日

Cena/HTML5でのローカルアプリ開発を考えてみる

開発中のCenaですが、
本命はHTML5のローカルアプリの開発です。
それもIndexed Databaseを使って、ローカル側のDBを使ったアプリです。Cenaを使えば、そういうウェブサイト・アプリが「簡単に」出来るような気がするもので。

と書いておいて、Indexed DatabaseのAPIを読み始めたばかりという状態なので、どれだけ「簡単」なのかは検討もつきません。少なくとも頭の中で考える分には・・・簡単なはず。

2010年8月16日月曜日

「Restっぽいやつ」あらためcenaに

例の「Restっぽいやつ」ですが、
リファクタリングを機に名前付けました。

クラス名をつけるときに統一しないとめちゃくちゃになるので。
で、

cena :Chained Entity Notation and Augumentation

です。
すでにインパクトにかけるとか悩んでますが。

2010年8月10日火曜日

「Restっぽいやつ」を書き直し

ざーっと開発していた「Restっぽいやつ」ですが、
さすがに書き直すことに決定。

今まで、DAO(Data Access Object)というパターンを使っていて、AR(Active Record)というのは横目でうらやましいなぁと思いながらも使ってませんでした。

が、この「Restっぽいやつ」はARと親和性が高い。
というかARを想定して考えてるようなもの。

なので、がーっと作ったら、ARとRestっぽいやつが混ざり合ったクラスになってしまいました。ということで、AR+RestっぽいRecord+Restっぽいマスター、の3レベルに分離。

が、元のコードが350行、分離して→合計700行に増えた。
まだ無駄なコードが少しあるけど、すっきりとした。

2010年8月6日金曜日

PHPUnitで一度の複数のテストを実行(addTestFile)

日本語の情報が少なかったので…
PHPUnitでテストを書いてますが、複数のテストクラスを一度に実行する方法。
PHPUnitの第7章「Organizing Test Suites」を読んだのですが、いまひとつ理解不能でした。で、ググって見たら簡単な方法を見つけました。

2010年8月3日火曜日

HTML5のローカルストレージまとめ

ローカルで動くウェブアプリケーションを作ってみたいと思い立って、HTML5関連について調べてます。今はローカルストレージ中心。

◆たくさんありすぎのローカルストレージ

ちょっと調べたところ「cookie」「SessionStorage」「LocalStorage」「Web SQL Database」「Indexed Database」の5種類がありました。多すぎっ!

ただし、「Web SQL Database」はドロップされる模様。
このあたりを参考に。
http://groups.google.co.jp/group/...
http://www.publickey1.jp/blog/09/websql.html

SQL互換地獄に陥らなくてよかった…

また「SessionStorage」「LocalStorage」は大きく「Web Storage」という括りで理解すべきみたい。そして「Cookie」は、もういいでしょう。

◆となって、要するに

  • Web Storage (Session+Local)
  • Indexed Database


の2つを追いかければよさそうです。
ただ肝心のIndexed Databaseは、正式サポートしてるブラウザーがない・・・

簡単なサンプルデモを作るだけならLocal Storageで出来るかも。でも、ちょっと複雑なことをする必要があれば、今のところ「Web SQL Database」で作るしかなさそうですね。