SimpleAPI(ウェブページのサムネイル)を試用

以前から興味のあったウェブページのサムネイル。このサービスを提供しているところが最近いくつかあるが、前にもここで書いたSimpleAPIを使って早速コードを書いてみた。書籍のコードは使ってない。だってPHP5だから。

試用した釣り情報サイト

はっきり言ってSimpleAPIの仕様がよくない。サムネイルのキャッシュがなかった場合、サムネイル作成のキューを発行するのはいいけれど、作成されるまでの間、URLが似たサイトのサムネイルを返すなんて・・・。ブログだったら、全部ブログのトップドメインのサムネイルが表示される。
ちょっとタコだ。

面白い本(自分的には・・・ですけど)

2007/01/12 | その他

久々に本を購入。多少お金はかかっても本を買うようにしているのだが、本当に久しぶり。
買った本はこれ。

PHP×WebサービスAPIコネクションズ

現在使用可能なマッシュアップサービスを、PHPのプログラム例を加えて紹介している。まぁ、紹介している内容は基本的にPEARなどのライブラリを使っているので、真新しいものはない(マニュアルを読めばわかるので、本来購入する必要のない本ではあるが・・・)。ただしメジャーなサービスを一通り紹介しているので調べる時間を省略できるという意味では大きい。他にもマッシュアップ系の解説本はでてるけど、かなり物足りない内容だしね。そこはサイボウズズラボの秋元氏(著者の人)、ツボを心得ています。くだらない解説抜きだからね。
ただ気になるのはPHPのバージョン。5で書いてある。最近はPHP5の書籍が多いけど、PHP5を使える環境なんて世の中にはほとんどない(自分でコンパイルする好き物系な人たちか、Fedoraを使う好き物系な人たちか・・・)。個人的にはPHP5の本なんていらないよね。なんとなくマッシュアップ系でXMLを扱うのにPHP4では不便だから、PHP4を避けたのでは?、と思わざるを得ない。
いやまぁ、文句も言ったが自分としては久々にヒット本だと思う。無駄な御託が少ないからステキ。サイボウズラボ秋元氏、また面白い本出してよね(前にコメントももらってるし、いちおうヨイショしておこう♪)。

結論は問題なし(Pager_Wrapper読んでみた)

2007/01/10 | その他PEAR全般

Pager_Wrapperはダメかも・・・、とソースをちら読みして思ったけど、少し時間をとって読んでみた。結論は「問題なし!」。
動作としては以下のような感じになっている。

■与えられたSQLとPagerのオプションから、データ件数を取得するSQLを生成
■データ件数とPagerオプションから、SQLのLIMIT句部分の値を生成
■データ取得の際には、実際に使用するデータだけを呼び出して変数に格納(ここでqueryAll)

ということで今まで自前でやっていた処理を、すべてまかなっていることが判明。これで何の心配もなくPager_Wrapperを使える!。コメントをいただけたので、なおのことソースを読み返したのだが、結局はそれがよかった。
これでまた少し楽ができるようになる。

やっぱりちょっと・・・Pager_Wrapper、Pager

2007/01/09 | その他PEAR全般

Pager_Wrapper、やっぱりだめかもしれない。
基本的にクラスとかファンクションとかで提供される、各種便利ライブラリ(PEAR含む)のソースは読まないようにしているのだが(ソースを読む時間があるのなら、ソースを書くほうがお金になるから)、ちょっとだけ気になったので、読んでみた。
んで、結論。
内部でqueryAllしてた。

これってウェブサーバとデータベースサーバが別サーバだった場合、大量のデータだったら問題にならないのだろうか。と、それよりも以前に(同じサーバだったとしても)100万件くらいのデータだったらメモリ的にまずくないのか・・・(まぁそうならないよう考慮すべきなのかもしれないけれど)。
データの件数によって使い分ける必要があると感じた。

ミッションクリティカルなときは使えないかも、Wrapper_Pager、そしてPager。

ページング処理をPEARで

2007/01/08 | その他PEAR全般

データベースからデータを取得する際、データの件数が多い場合はページング処理をして出力するのは当然だ。今まではこの記述を全て自前で書いていた(「データ取得時のページング処理」を使っていた)。
もちろんPEARの中に、Pagerというページング処理をおこなうためのクラスがあることは知っていた。しかしつい最近まで「Pagerを使う場合は事前にデータをすべてDBからフェッチしておかないといけないから、大量データのあるテーブルの場合は役に立たない」と考えていた(ということで使わなかった)。
実は心の中で「こんな当たり前の処理、絶対に簡単にできるためのツールがあるはず」と思っていたけど、探したり、調べたりするのが面倒だったから、結局自前で書いていた。
今日一大決心(というほどのことではないけれど)をして探してみた!。そしたらあっさり見つかった。PEARのPagerをラッパーしたクラスとのことだった。
Pager_Wrapper.php

これを使うとなんと超簡単。あっという間にページング処理をやってくれる。
こんな感じ。

//Pagerを使う際のオプションを設定(他にもいろいろあり)
$pagerOptions=array();
$pagerOptions[‘mode’]=’Sliding';
//1ページに10レコードずつ
$pagerOptions[‘perPage’]=10;
//自動で生成するリンクの数(「次ページを入れて前後に3つずつ」ということ)
$pagerOptions[‘delta’]=3;
//表示したいページ番号
$pagerOptions[‘currentPage’]=1;

$sql=”SELECT shohin_id,shohin_name FROM tbl_shohin ORDER BY shohin_id;”;
$pagedData=Pager_Wrapper_MDB2($myDB,$sql,$pagerOptions);

print_r($pagedData);

たったこれだけ。これだけで必要なデータは全て$pagedDataに配列で格納されてくる。すご〜い。
これを作った人に感謝。この紹介記事を書いた人に感謝。検索エンジンに感謝。探す勇気を出した自分に感謝。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net