『たのしい写真』が気になる
- 作者: ホンマタカシ
- 出版社/メーカー: 平凡社
- 発売日: 2009/05/01
- メディア: 単行本
- 購入: 17人 クリック: 159回
- この商品を含むブログ (100件) を見る
この本がすごく気になってる。多分買ってしまう気がする。最近写真を撮影していて、「どうしたらいいのかな?」とか「写真って何なんだろう?」と思うことが増えてきたりしていたので。テクニック的なことや機材的なことは抜きにして、写真の面白さを語ってくれるような本が読みたい。
karintoは関数書いていく感じに戻りました
迷走ばっかりしてますけど。
Limonadeとか見てて、関数ベースも悪くないじゃんとか思ったのでkarintoを再び関数で実装を書いていく感じに戻しました。クラスとか書かなくていいです。
次のコードで、/index.php/fooを表示します。
/index.php
<?php require_once 'karinto.php'; karinto::run(); // GET /foo function get_foo($req, $res) { $res->message = 'Hello ' . $req->name; $res->render(); }
/templates/get_foo.php
<html> <body> <?php echo $message; ?> </body> </html>
Limonadeはdispatch関数でURLと関数のマッピングを定義していく感じになってるけど、karintoはリクエストメソッドとPATH_INFOを元に実行する関数を決めていきます。なのでマッピングの定義とか不要(でも指定できると便利な局面もあるのかな)。
karintoはテンプレートの扱いが割と普通(テンプレートファイルを読み込んで表示)なのだけれど、LimonadeはテンプレートもPHPの関数として実装するようになってますね。その発想はなかった。
# それにしてもLimonadeって命名とロゴがかわいいな
インドの青鬼
[rakuten:sakeishikawa:10000196:detail]
なんかこのエールが気になるのです。近所のスーパーとか酒屋さんじゃ売ってなさそう。パッケージデザインが素敵。
AmazonのAPIでHMACSHA256が必要になる件
AmazonのAPIを使う場合に認証コードが必要になる件だけど、HMACSHA256だからPHPだとこうだね。
<?php $data = 'GET webservices.amazon.com /onca/xml AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06'; $secret_key = '1234567890'; $hash = hash_hmac('sha256', $data, $secret_key, true); var_dump(base64_encode($hash)); // string(44) "Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg="
PHP 5.1.2から標準で使えるhash_hmac関数があるおかげで簡単。
『少し変わった子あります』読んだ
- 作者: 森博嗣
- 出版社/メーカー: 文藝春秋
- 発売日: 2007/11
- メディア: 新書
- 購入: 1人 クリック: 20回
- この商品を含むブログ (52件) を見る
読んだ。けど読む人を選びそうな作品かも。どちらかと言うとひとりでいることが好きで、渋谷とか人混みが大嫌いな人はすんなり世界に入っていけそう。入っていけない人は入っていけないまま終わってしまいそう。そういう作品。
PHPのリフレクションってどうなんだろ
PHPのリフレクションって使われてるのかな。PHPのマニュアルでもわかりづらい場所に解説があって、決して重要視されてる感じがしない。
ちなみに、karintoではメソッドの引数の個数に応じてkarinto_sessionのインスタンスを生成するかどうかを判断している箇所があって(karintoクラスのrunメソッド)、そこでだけリフレクションを使ってる。
<?php if (method_exists($page, $method_name)) { $ref = new ReflectionMethod($page_name, $method_name); if ($ref->getNumberOfParameters() < 3) { $ref->invoke($page, $req, $res); } else { $session = new karinto_session($res); $ref->invoke($page, $req, $res, $session); } }
便利と言えば便利なんだけど、元々PHPにはcall_user_funcとかproperty_existsとかクラス・関数操作用の関数群があるので、余程の事情がない限りリフレクションを使う機会って多くない気がする。