symfony1.0,propelメモ
もうsymfony1.0、propel使うことそんな無いだろうけど、使う時に使い方探すの面倒なのでメモ。
// (started_at <= now() OR started_at IS NULL) $c->add($c->getNewCriterion(self::STARTED_AT, $now, Criteria::LESS_EQUAL)->addOr($c->getNewCriterion(self::STARTED_AT, null)));
もうsymfony1.0、propel使うことそんな無いだろうけど、使う時に使い方探すの面倒なのでメモ。
// (started_at <= now() OR started_at IS NULL) $c->add($c->getNewCriterion(self::STARTED_AT, $now, Criteria::LESS_EQUAL)->addOr($c->getNewCriterion(self::STARTED_AT, null)));
TwitterAPIを利用したプロフィール画像更新はcontent-typeがimage/*じゃないとコケる。
正確にはステータス200が返ってくるけど、更新されないからもっとタチが悪い。
Twitter REST API Method: account?update_profile_image
curl、rubyによるサンプルコードが載ってるけど、「Expect」ヘッダは不要。
PEAR公式のServices_Twitterを利用していたが、update_profile_imageが上手くいかない。
まだドキュメントが整理されていないので、ソースを読むかテストをみて、利用法を確認したが問題なし。
リクエストをトレースしてみたところ、content-typeが「application/octet-stream」だったのが気になったので「image/jpeg」にしてみたところ、画像の更新に成功。
PEAR::HTTP_Request2でmime-typeが取得できなかった場合、「application/octet-stream」がセットされていたというオチ。
pecl::Fileinfoかmime_content_typeを利用するようになっていたけど、?with-mime-magicとかコンパイル時に指定していなかった件。
PHPでtwitterを利用する場合にはServices_Twitterが便利です。
このServices_Twitterですが、公式のPEAR公式と野良(?)版が存在します。
openpear版はさっき見つけたけど、ちょっと使う気になれないので選択肢としてはPEAR公式か悠希さん版。
環境がCentOS5系、PHP5.1系だったので、悠希さん版を検討したのですが、CodeReposに入れられてるもののほとんど更新されておらず、APIが増えてる現状を考えると作業量的に厳しいということでPEAR公式を利用することに。
Services_Twitter-0.1.0 betaがリリースされたので日本のと比較してみた – 肉とご飯と甘いもの @ sotarok
この頃と状況は結構変わっていて、json必須ではない(でも速度の関係でpeclのjsonを利用)、HTTP_Request2でsocket通信とかになっています。
結構珍しい造りになっていて、api群はdata/api.xmlで管理されています。
pearコマンドを利用せずに利用する人は注意が必要。