php:ORMもどきの実装
2008年2月6日 (水曜日) - 23:12:45 by decama
php5に限定したvalidator/filterクラスの実装が終わったので、Modelコントローラを書く。
同じくphp5に限定して、ORMっぽい動きをさせてみる。とりあえず1レコードのCRUDを簡単に出来るようにしてみよう。
2008年2月6日 (水曜日) - 23:12:45 by decama
php5に限定したvalidator/filterクラスの実装が終わったので、Modelコントローラを書く。
同じくphp5に限定して、ORMっぽい動きをさせてみる。とりあえず1レコードのCRUDを簡単に出来るようにしてみよう。
- 14:31:42 by decama
これまで使ってた汎用validate/filterクラスを配列対応に刷新しようと書きながら、複数ファイルのアップロードを調べてたら新しいエラーコードが追加されてた。
UPLOAD_ERR_EXTENSION
値: 8; ファイルのアップロードが拡張モジュールによって停止されました。 PHP 5.2.0 で導入されました。
ってあったので、マニュアルサイトのアップデート情報を探してたら、なんと
新しい拡張モジュール
これらの拡張モジュールは、PHP 5.2.0 以降で (デフォルトで)新しく追加されました。
『やっとJSONを組み込むんだ・・・Filter?』
テストしながら「これでやっと先に進める?」とか思いながら、ここ数日やってたのに、こんなところにこんなモノがあるなんて・・・
ファイルアップロードには対応してないし、どうやらまだきちんと動かないみたいだから、とりあえず構築は最後まで終わらせよう。
自分の実装とこれ(Filter)が近かったので、とりあえず良しとしようかな・・・
2008年2月4日 (月曜日) - 23:11:53 by decama
いろんなフレームワークを触ってみてるけど、配列で送られて来たフォームをきちんとバリデートしてくれるフレームワークがあんまり無いことに驚かされてしまう。
配列で送られてくるようなフォームを書くからいけないのかな?
配列で送らないようにすると、フォームを作るときの手間がとんでもないことになるよなぁ。
他の人たちはどうやってこの問題を解決してるんだろう?
とりあえず自分は、自分なりのValidateクラスを書いてみよう。
(これを誰かがやってると思ってフレームワークに走ったのになぁ。)
サーバーサイドでValidateするか、クライアントサイドでValidateするか、そこの問題もあるよなぁ。
2008年2月2日 (土曜日) - 3:38:00 by decama
prototype.jsを使うようになって、bindがとても便利なことに気づかされたんだけれども、これと同様のことをphpでやろうと思った時に、どうすればいいのか考えなきゃならなくなった。
Smartyが使えるかどうかわからないサーバに、テンプレートを使わなきゃいけないような実装をしなければならなかったので、
preg_replace_callbackを使って変数をパースさせようとしてみた。コールバック関数側でアサイン用の配列を参照してパースすればいいじゃん、と思って組んでみた。
ところが、コールバック関数には、正規表現にマッチした文字列が配列で投げられるだけで、他に参照用の配列を渡せない。
コールバック関数側で、参照用配列をglobalでアクセスすればいいんだけど、これだと美しくない。
で、こうしてみた。
コールバック関数が呼ばれる前に、
みたいにバインドさせる変数を事前に渡しておいてから、コールバック関数を
で呼び出せば、バインド用に渡しておいた変数を一緒に投げてくれる。
無理やりな解決策だったけど、これはもうちょっと考えてあげれば面白いかもしれないのでとりあえずのメモ。
2008年1月24日 (木曜日) - 20:01:31 by decama
この記事がポストされれば問題ないはず。
↓
ならば修正もされるはず。
↓
どちらもOK。
久しぶりにここを更新するようになって、気がついたらmixiへの書き込みが出来なくなってた。どうやらmixi側の修正にプラグインが対応できてかったのが問題みたいだったけど、その修正対応版でもなぜか動かない。
ソースを追っかけてみて、post_idを直接指定してプラグインファイルを実行させれば書き込めることは確認取れたので(前3件の記事をmixiに投稿してみた)、要はpublishToMixiに記事IDを渡してやればいいはず。
saveHandler, publishHandler からの executePublishToMixi が publishToMixi を呼び出してるのかと思ったらそうじゃなかった。
どうやら、executePublishToMixi でチェックさせた後で、 mixipublisher_isEnableSelfExecute から publishToMixiを呼んでる。
ところが、現行のWordPress(2.3.2)はpost_idをgetで投げてないから、 ここでコケる。
post_idをpostedに修正したら動くかな?と思ったけど、新規投稿はいけるけど、投稿済み記事の更新がダメだった。
なので、 executePublishToMixi から直接 publishToMixi を呼び出すように修正。
これで多分大丈夫だと思う。
2008年1月23日 (水曜日) - 1:33:48 by webmaster
CakePHPを始めたのはいいんだけど、いまいちキレイにまとまらない。深い階層の配列を書かなきゃいけないことが多いし、DBアクセスは楽かも知れないけれど、準備にかかる手間が多すぎて、「こんなんだったらSQL直接書いてスクラッチしたほうが早いんじゃ・・・」って思っちゃう。
メンテナンスの手間とかを考えたら、導入するメリットはあるんだろうけども。
CakePHPも「とりあえず触ってみないとわからんだろ」との勢いもあって始めてみたので、その勢いでもう一つ触ってみる。
Akelosってのがなんとなく気になったのでこれを使ってみようと思う。
インストール~チュートリアルでいきなりひっかかるし、Call-time pass-by-referenceのWarningの嵐でメゲそうだけど、まずは全体像が見えるまでやってみよう。
2008年1月21日 (月曜日) - 18:34:59 by webmaster
テンプレートで<?php echoとか書きたくなかったので、Smartyを使えるようにしたい。
ここを参考にsmarty.phpを作成。htmlヘルパークラスやformヘルパークラスに配列でパラメータを渡さなきゃいけないときにどうするか、って問題があって、assign_assocっていうsmarty用のプラグインを使えばいいんだけど、配列を文字列で渡すのがちょっとキモチ悪い。直接渡せないかとおもってヘルパークラス(basics.phpからaとaaとprを持ってきた)を作ってみたけど、Smartyはオブジェクトのパラメータにオブジェクトがあるとパース出来なかった。
せっかくヘルパークラス作ったのでヘルパークラスメソッドをassignすることで自分としては納得するしかないかな。
- 17:54:33 by webmaster
何ヶ月ぶりかの更新だったりする・・・(笑)
CakePHPでサイト構築をしようと思って始めてみたので、自分用のメモ。
Modelのvalidateプロパティでバリデーションの指定が出来るけど、formヘルパークラスで出力してるエラーメッセージの指定もここで出来る。
ブログチュートリアルではこう書いてあるけど、
こんな風にも書ける。
$validation.phpで定義されているValidationクラスのメソッドでバリデーションすることも出来る。
2007年9月10日 (月曜日) - 21:11:44 by webmaster
気が付けば、前回の投稿からほぼ3ヶ月。
全体的になんだか煮詰まってしまってる感じ。
滞ってるというか。
停滞だな。
何とかしないと。
2007年6月15日 (金曜日) - 14:55:58 by webmaster
面白くなってきた。
次にやることといったら、alphaでしょ。半透明でしょ。(笑)
main-app.xml
main.mxml
楽しいね。