ラベル pear の投稿を表示しています。 すべての投稿を表示
ラベル pear の投稿を表示しています。 すべての投稿を表示

2010年10月26日火曜日

ファイル1つだけで出来ている 便利なPHP製ツールいろいろ

PHPライブラリは新時代に入った。定番だったphpMyAdminやPEAR::Mailはもう古い。最近は1ファイル配置するだけで簡単に使える便利なツールが増えてきた。

例えばこんなの。



次は1ファイルのフレームワークだね。(Google Code上にはもうたくさん公開されてるけど...)
あるいは1ファイルのブログシステムやWikiか?

2010年6月10日木曜日

Zend Frameworkと PEARの命名規約に相違点

Zend Frameworkの命名規約とPEARの命名規約。両方ともJavaの命名規約を元にしていると思われる。変数でアンダーバーを使わないところとか。($foo_barではなく$fooBarとキャメルケースにする。)

Zend FrameworkとPEARの命名規約はかなり似てるが、細部まで見ると少し違う。
相違点を洗い出してみた。


Zend Framework
PEAR
アルファベットの略語先頭だけ大文字にする
例:Zend_Pdf
略語全体を大文字にする
例:HTML_Upload_Error
抽象クラスクラス名の後ろに"Abstract"を付ける
例:FooAbstract
言及なし
インターフェイスクラス名の後ろに"Interface"を付ける
例:FooInterface
言及なし
protectedアンダーバーで始める
例:$_foo
アンダーバーで始めない
例:$foo


Zend Frameworkの方がいいと思う。


参考:
Zend Framework: Documentation: 命名規約 - Zend Framework Manual
Manual :: 命名規約 (← PEAR)

2009年5月13日水曜日

PEAR::Services_Amazonで Product Advertising APIの電子署名認証を使うサンプル

PEAR::Services_Amazonから最新版(現在0.8.0)を入手する。

pear upgrade -a Services_Amazon-0.8.0

使い方は、SECRET KEYが必須になった以外は今まで通りでOK。
require_once('Services/Amazon.php');

//Services_AmazonECS4ではなく、Services_Amazonの方を使う
$amazon = new Services_Amazon('ACCESS_KEY', 'SECRET_KEY');

//Base URLをhttp://ecs.amazonaws.jp/onca/xmlにする
$amazon ->setLocale('JP');

//デフォルトは現在最新の"2009-03-31"
//$amazon ->setVersion('2009-xx-xx');

$res = $amazon ->ItemSearch('Books', array(
 'Keywords' => 'Ruby on Rails',
 'Sort' => 'daterank',
 'ResponseGroup' => 'Small,Images',
));


参考:Amazon Product Advertising API への対応(PHP版) - もやし日記


(2009/05/17 PEARコマンドの誤りを修正)

2009年5月7日木曜日

PEAR::HTTP_Client 非徹底解剖

PEAR::HTTP_Clinetがget()する時の、主にコネクションを確立するまでの大まかなfunctionの流れ。


HTTP_Client#get()

HTTP_Client#_performRequest()

HTTP_Request#sendRequest() ※1
↓ ↓ ※2
↓ Net_Socket#connect() ※3
↓ ↓ ↓
↓ ↓fsockopen()
↓ ↓ ※4
↓ socket_set_blocking() ※5

HTTP_Response#process() ※6

ソケット経由で得たレスポンスを処理していく
(以下省略)


※1 将来的にはHTTP_Request2に切り替える可能性が高いと思われる
※2 URLのスキームがhttpsの場合は、ホスト名は「ssl://ホスト名」に、そうでない場合はIPアドレスに変換される
※3 ちなみにHTTP_Request2の場合、自前のSocketクラス(HTTP_Request2_Adapter_Socket)を使っている
※4 もしこのあたりでNet_Socket#enableCrypto()を使えばSSLのバージョンを指定できるけど、使っていない
※5 stream_set_blocking()のエイリアス。この流れの中ではデフォルト設定のままなので、常にブロッキングを有効にしている
※6 HTTP_Responseクラスは、HTTP_Requestのファイル(Request.php)内で定義されている

2008年11月8日土曜日

PHPで簡単にタグクラウドを生成するPEAR::HTML_TagCloudを試してみた

PEAR :: Manual :: HTML_TagCloud

これは簡単。とても簡単。便利。
タグを追加してbuildするだけ => PEAR :: Manual :: 導入


デフォルトだとタグの色がグレー等になるようなので、サイトに合わせて色を変えた方が良さそう。
普通のリンクの色(デフォルト 青、visited 紫、active 赤)にしたい場合はこんな感じ。
CSS

div.tagcloud a{
 /* 下線は消した方がタグクラウドっぽい */
 text-decoration: none;
}
PHP
<?php
$tags = array(.....); //ここにタグと件数が入っているとする

require_once('HTML/TagCloud.php');

$cloud = new HTML_TagCloud();
foreach ($tags as $tag => $count) {
 //経過時間をセットしない場合の例
 $cloud->addElement($tag, '/tag/' . urlencode($tag), $count);
}
echo $cloud->buildHTML(); //HTMLのみ出力する

ブログ アーカイブ

tags