さくらインターネットのレンタルサーバにXdebugをインストールする
前からやりたいなぁと思っていたのだけど上手いこと入れることが出来なかったXdebug。 Xdebugを入れると例えばPHPでvar_dumpをしたときに、このようになっていたのが、 こうなります。便利。 改めてやり直してみたら意外にも上手く入ったので以下、メモしておく。
前からやりたいなぁと思っていたのだけど上手いこと入れることが出来なかったXdebug。 Xdebugを入れると例えばPHPでvar_dumpをしたときに、このようになっていたのが、 こうなります。便利。 改めてやり直してみたら意外にも上手く入ったので以下、メモしておく。
autoloadの実装に少し迷ったので、Symofnyの実装を見てみた。 また、マニュアルを参考にして小さなレベルで使用できるautoloadを書いてみた。 以下、メモ。
結構、適当な好き嫌いでぼんやり理解のまま放置してること。 もうちょっと何とかしたいので列挙。 (使用言語は例によってPHP)
全然気づいてなかったけど、PEAR::Services_Hatenaっていうライブラリがあるんですね。 Services_Hatena しかもPEARに収録されたのは2006年のこと。 今までWSSEとか自分で実装してましたが、これ使えばそういう煩雑な部分全部省略できますね。 なんというか、まったくもって迂闊でした。 というわけで、この中のServices_Hatena_Bookmarkを使ってブックマークのポストその他をしてみるテスト。
Smarty3同梱の「README」ファイルより。 Smarty3でのAPIは以下の通り。
Smarty3の最新β(β8)が出たのが3/5。 今後どうなっていくのか、正式版はいつ頃リリースなのかその辺気になるところですが、 使ってみている限りで特に不具合はない(このサイトはMobavleType+PHP5+Smarty3で構築されています)ので、 それほど大きな影響がない、あってもなんとかなるくらいの環境であれば移行してみても良いかも知れません。 (今から脆弱性が発見される可能性も無くはないですけど) Smarty3になると何が変わるかはSmarty3に同梱の「SMARTY2_BC_NOTES」ファイルに記載されています。 日本語訳はこちらにあります。 Smarty2.0からSmarty3.0への変更点 | スイナシア 大きな変更は、PHP5以上で動作というところだと思いますが、他にもメソッドチェーンをサポートしていたり、色々と地味に便利になっているような気がします。 で、Smartyのインストールと言っても基本的にはコピーするだけなので簡単なのですが、 実際に移行してみるといくつかテンプレートのハマリ点があったのでメモしておきます。 参考にしていただければ。
今やフレームをページ全体に使用したサイトは殆ど見かけなくなりましたが、 使用しているRSSリーダー「フレッシュリーダー」はフレームで構成されています。 で、メニューフレームが若干狭いために未読件数が増えてくるとこんな感じにボタンがずれてしまうのですが。 「フレッシュリーダー」は殆どが暗号化されていてカスタマイズできないので調整は不可能です。 じゃあどうするか。 Greasemonkeyでやればいいんじゃね? ということでやってみました。
[ThinkIT] 第5回:PHP5のオブジェクト指向 (1/3) 自分がプログラマとしてどれだけダメかよーく解った。 読めばすぐに解るし、納得できるし、実際のコードも似たような構成になってはいるものの、体系立てて解ってなかった。特に、DTOの扱いとシングルトンパターンの場合のインスタンスの活用について。君が今まで「DTO」と呼びたがってたそのクラス、それただの処理混在のクラスだから。ちっともカプセル化してないから。君が作ってたシングルトンクラス、newしなくて便利以上の用途無いから。何でもかんでもstaticにすればいいってもんじゃないから。 そういうのただの俺俺ルールだから。 今までぼんやりとしか解ってなかった(DAOってDBにアクセスするんでしょとかDTOってデータをまとめて取ってくるんでしょとか)のがサンプルコード読んで目から鱗がボロボロ落ちた。ダメだオレ。何年遅れよ。いまだ似非プログラマから脱出できてない。ちきしょう。 とはいえ悔やんでも仕方がないし、少しずつリファクタリング(もしくは置き換え)していこう。今日書くコードから始める。 その他、読んだもの。 Singleton – GoFデザインパターン~STEP1:まずはここから – PHPによるデザインパターン入門 – Do You PHP? DAOパターンですっきりコーディング!(1/4) - @IT PHP5でデザインパターン - Singletonパターン – Lism.in * blog – nekoya (id:studio-m)
ググると以下を使うと良いと書いてあるのだけど、
throw $continue;
1.6では動かない。
仕様を読むと、
とあって、つまりは、1.5以降ではサポートされてないとのこと。 代わりに、The usage of $continue is deprecated. This feature will not be available in releases after Prototype 1.5 in favor of speed. Instead–since your blocks are in fact functions–simply issue a return statement. This will skip the rest of the block, jumping to the next iteration.
return;
とやれば、問題なく動作するよとのこと。なるほどね。
こんな感じか。
var result = [];
$R(1,10).each(function(n) {
if (0 == n % 2)
return;
result.push(n);
});
// result -> [1, 3, 5, 7, 9]
breakの方はなんか特になさそう。
ていうかまぁ、いつまでprototype.js使うんだろね、という話ではあるんだけども…