ブログからはてなブックマークへの投稿方法を変更。

自分のブログのエントリをはてなブックマークへ投稿する方法については、過去、様々な試行錯誤と紆余曲折を辿ってきました。 AddToHatenaBookmark Pluginを入れてみる。 【メモ】MobableType → はてなブックマークでタイトルがURLになってしまう件 ブログからはてなブックマークへの自動投稿を再開しています。 Twitter経由でエントリをはなブックマークに投稿するときにタグも含める どれもその時点では問題なしだったのですが、仕様変更?や環境の変化で上手く動かなくなったり、改善したい点が出てきたりして今まで満足のいく実装はありませんでした。最近のTwitter→はてなブックマークの投稿にしても結局は、僕のブクマスタイルに合っているとは言えず。 これはもう自分で何とかするしかないのかな、と思っていたのですが面倒で放置していたところ、PEAR::Services_Hatenaを発見して非常に楽に実装できることが解ったのでさっくりと作ってみました。 【PHP】PEAR::Services_Hatena_Bookmarkを使う

続きを読む

【PHP】PEAR::Services_Hatena_Bookmarkを使う

全然気づいてなかったけど、PEAR::Services_Hatenaっていうライブラリがあるんですね。 Services_Hatena しかもPEARに収録されたのは2006年のこと。 今までWSSEとか自分で実装してましたが、これ使えばそういう煩雑な部分全部省略できますね。 なんというか、まったくもって迂闊でした。 というわけで、この中のServices_Hatena_Bookmarkを使ってブックマークのポストその他をしてみるテスト。

続きを読む

【メモ】Smarty2 → 3のハマリどころ

Smarty3の最新β(β8)が出たのが3/5。 今後どうなっていくのか、正式版はいつ頃リリースなのかその辺気になるところですが、 使ってみている限りで特に不具合はない(このサイトはMobavleType+PHP5+Smarty3で構築されています)ので、 それほど大きな影響がない、あってもなんとかなるくらいの環境であれば移行してみても良いかも知れません。 (今から脆弱性が発見される可能性も無くはないですけど) Smarty3になると何が変わるかはSmarty3に同梱の「SMARTY2_BC_NOTES」ファイルに記載されています。 日本語訳はこちらにあります。 Smarty2.0からSmarty3.0への変更点 | スイナシア 大きな変更は、PHP5以上で動作というところだと思いますが、他にもメソッドチェーンをサポートしていたり、色々と地味に便利になっているような気がします。 で、Smartyのインストールと言っても基本的にはコピーするだけなので簡単なのですが、 実際に移行してみるといくつかテンプレートのハマリ点があったのでメモしておきます。 参考にしていただければ。

続きを読む

【メモ】DTO、DAO、シングルトン

[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)

続きを読む

memcached の返り値まとめ(Pecl::Memcached)

memcachedにnullやbooleanなどを入れたらどうなるか、曖昧になっていたので調べた。

テストコード

(PHP5、Pecl::Memcached使用)
$m = new Memcached();
$m->addServer('localhost', 11211);

//test data
$items = array(
'string'  => 'string',
'integer' => 1,
'array'   => array(
1,
'a' => 'A'
),
'true'    => true,
'false'   => false,
'empty'   => '',
'null'   => null
);
//sets
$m->setMulti($items);

//keys
$keys = array_keys($items);
//add key has no value
$keys[] = 'not_found';

//gets
$null = null;
$result = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);

//result
var_dump($result);

続きを読む