Home

日記
colinux/debianからVMWare Player/CentOSに乗換Edit

設定が壊れているcolinux/debianをだましだまし使っていたんだけど、そろそろテスト環境として使い物にならなくなってきたんで、「VMWare PlayerでCentOSを動かす」を参考にしつつ、VMWare Player/CentOS 4.4をセットアップし、旧colinux環境から各種データを移行。colinuxよりもVMWare Playerの方が扱いが楽でいいかも。

Published At2007-04-06 00:00Updated At2007-04-06 00:00

技術日記
Zend_Config_Yaml野良版Edit

Zend Frameworkの最新状況に追随しようとして、コードを見ているんだけど、なぜかいまだにZend_Config_Yamlがないみたいなんで、試しに書いてみた(つっても、ほとんどのコードはZend_Config_Xml/Iniのものを流用)。

YAMLのパースにSpycかSyckを使っているんで、どちらかが必要。一応Zend_Config_Xml相当のテストは通るようにしておいたけど、それ以外のテストはしていない。

あと、テストパターンの中で、空の要素をarray_mergeしているんで、Warningが出ているんだけど、これはコードレベルで対応しておくべきなのか、それともWarningとして残しておくべきなのか、Zend_Configの思想がよく分かってないんで放置中。

純血主義のZend Framework的には、こういう外部ライブラリを利用したコンポーネントはダメで、たぶんまだproposal段階のZend_Yamlあたりができあがってから、正式版のZend_Config_Yamlが作られるんだろうなー。

Published At2007-04-06 00:00Updated At2019-12-31 00:00

日記
入学式の日にインフルエンザEdit

やってくれましたよ。上の子は今年小学校に入学するんで、昨日入学式だったんだけど、朝起きたら39度台の発熱。病院に行ったらインフルエンザだと。入学式に出られない+入学後最初の一週間休まなければならないっつーのは、かなり出遅れる感じだよなー。俺も中学入学のタイミングで引っ越しがあったせいで、入学式+最初の数日出遅れてビミョーな出だしを体験したことがあるからなー。まあ小学生の方が影響は少ないだろうけど。っつーか、今週一週間どうするべ。

Published At2007-04-10 00:00Updated At2007-04-10 00:00

技術日記
PHPでクラスに特定のメソッドがあるかどうかを調べる方法Edit

っつーか普通に、

$foo = new Foo();
if (is_callable(array($foo, 'bar')) {echo "Foo::bar() exists"}

っていけるかなーと思っていたんだけど、問題は__callを使ったときにどうなるのか。試してみたところ、__callが存在するだけで、あらゆるメソッドが存在することになってしまうらしい(っつー言い方は不正確だな。callableかどうかを返す関数なんだから。正確には「あらゆるメソッドが呼べることになってしまう」ね)

class Foo
{
function __call($methodName, $args)
{
throw new Exception()
}
}

とかでも、Foo::bar()だろうがFoo::baz()だろうがis_callableはtrueを返してしまう。

試しにis_callableの第3引数を使って、

$methodName = null;
is_callable(array($foo, 'bar'), true, $methodName);

とかしてみたら、存在しないときには$methodNameで識別できるんじゃないかと期待してみたんだけど、期待も空しくFoo::barが返ってきてしまった。

Reflection APIを使って、

$reflection = new ReflectionClass('Foo');
$reflection->hasMedhot('bar');

とすればいけるんだけど、この程度のことにReflection APIを使うのはなんだか大げさなような気がしてならない。今のところそれしか方法が見つからないから、使うんだけど。

追記

以上の文章は、method_exists()を使えば簡単にできることなのに、その関数の存在をすっかり忘れて試行錯誤した記述です。メソッドの存在確認をしたい場合は、

method_exists($foo, 'bar')

を、そのメソッド名での呼び出しが可能かどうか(__callも含めて)が知りたい場合は、

is_callable($foo, 'bar')

を使うのが正解でした。

ご指摘ありがとうございました>wtnabe様。

Published At2007-04-12 00:00Updated At2019-12-31 00:00

日記
社員旅行Edit

先週、金曜土曜と社員旅行で河口湖方面に行ってきた。

初日は富士急ハイランドでドドンパFUJIYAMAええじゃないかの3連発。ジェットコースター系に乗るのは子供の頃以来で、ドドンパ程度ならばともかく、FUJIYAMA(最高地点たけーよ&後半のアップダウン&横揺れがしつこいよ)、ええじゃないか(後ろ向き上り→真下を向いて垂直落下はかなりえぐい)はきつかった。っつーか、最近のジェットコースターは、ポケットの中のものとかメガネとか(場合によっては靴まで)全部乗る前に外していくんだね。せっかくXactiでムービーを撮りたかったのに乗っている映像は撮れなかった。っつっても、実際には乗りながら撮影する余力はなかったと思うけど。んで、宿に行って風呂に入って宴会やって麻雀やって終了。

翌日は朝飯食って、テニスコートを借りてテニスをやって、レンタカーでプリウスを借りてそのまま帰宅。プリウスは楽しーなー。空いている高速+ちょっと混んでいる環八で100kmちょっとの道のりを、32km/lくらいの燃費で走れたよ。燃費走行のテクニックもいろいろ工夫しがいがあるし。ただ、標準のナビがしょぼかったのと、ナビ画面と詳細な燃費(エンジン+モーター情報)画面とが両立しないのはいまいちだなー。エンジン+モーター情報はメーター周りに標準で表示してくれればいいのに。あと、結構視界も悪い車だった。特に後方視界なんてムーヴとかモビリオとかに乗り慣れた身には、ほとんど何にも見えねーよって感じだった。まあ運転に支障があるわけじゃーないんだけど。

ええじゃないかの映像

はじめてYouTubeにムービーをアップロードしてみたけど、せっかくHD画質のムービーをアップロードしたのに、こんなに品質を落とされちゃうのか。特に縦横比を維持してくれないのは厳しーなー。

Published At2007-04-23 00:00Updated At2007-04-23 00:00