Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PEAR::Services_Recruit_Abroad作ってみた

先日リクルート社のAPIが公開され、「赤すぐ.net」のPEARパッケージを作ってみましたが、


残りも時間があれば作ってみようかと。。。「あれば」の話;-)

と言っていたので、お盆休みの時間を利用して、第2弾のAB-RoadのPEARパッケージを作ってみました。テスト等まだ全然足りてませんが、とりあえず公開します。よろしければご利用ください。

インストールは

# pear install -a http://www.doyouphp.jp/pear/Services_Recruit_Abroad-0.0.1.tgz

な感じで。
PEAR::Services_FeedMeterPEAR::Services_Hatena_StarPEAR::Services_Recruit_Akasuguと同様、HTTP_Request1.4.1以上が必要になります。なお、PHP5.2.x系のみ対応としていますが、特別な拡張やPEARパッケージを使っているわけではないので、PHP5系であれば動作すると思います(PHP5.2.3以外は動作未確認です)。
また、APIドキュメントも用意してあります。

使い方は、Services_Recruit_Akasuguと同様、

  1. Services_Recruit_Abroad_Factoryを使ってサービスインスタンスを取得
  2. 各パラメータをセット
  3. Services_Recruit_Abroad#invoke()
  4. invoke()の戻り値を適宜変換して利用する

となります。具体的なサンプルは次のような感じです。

<?php
require_once "Services/Recruit/Abroad/Factory.php";

/**
 * 別途APIキーを取得しておく必要がある
 */
$APIKEY = '[APIキー]';

/**
 * 海外旅行検索API
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_TOUR, $APIKEY);
$obj->addDept('TYO');
$obj->addKeyword('ヨセミテ');
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * エリアマスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_AREA, $APIKEY);
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 国マスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_COUNTRY, $APIKEY);
$obj->addCountry('US');
$obj->setIn_use(Services_Recruit_Abroad_Country::IN_USE_NOTUSE);
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 都市マスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_CITY, $APIKEY);
$obj->addCountry('US');
$obj->addCity('NYC');
$obj->setIn_use(Services_Recruit_Abroad_Country::IN_USE_NOTUSE);
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * ホテルマスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_HOTEL, $APIKEY);
$obj->addCountry('US');
$obj->addCity('NYC');
$obj->setIn_use(Services_Recruit_Abroad_Country::IN_USE_NOTUSE);
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 航空会社マスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_AIRLINE, $APIKEY);
$obj->addKeyword('ベトナム');
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * こだわりマスタAPI
 */
$obj = Services_Recruit_Abroad_Factory::getInstance(Services_Recruit_Abroad_Factory::API_MODE_KODAWARI, $APIKEY);
$obj->setFormat(Services_Recruit_Abroad::FORMAT_JSON);
var_dump($obj->invoke());

追記(2007/08/14 18:52)

okuryuさんからのコメントですが、以下のような感じです。ちなみに環境は、

  • CentOS4.5
  • PHP5.2.3
  • PEAR 1.5.4
  • PEAR_PackageProjector 0.1.3
  • PEAR::PHP_CodeSniffer 0.7.0
  • PEAR::Console_Getargs 1.3.4
  • PEAR::PEAR_PackageFileManager 1.6.1

です。

[project]
src_dir = src
release_dir = release

[package]
package_name = Services_Recruit_Abroad
package_type = php
baseinstalldir = /
channel = __uri
summary = Web api wrapper for Abroad
;description = #
;notes = #
;summary_file = <filepath>
description_file = desc.txt
notes_file = notes.txt

[role]
;; role value is <php|data|doc|test|script|src>
;sh = script

[version]
release_ver = 0.0.1
release_stab = alpha
api_ver = 0.1.0
api_stab = alpha
php_min = 5.1.0
pear_min = 1.4.11

[license]
name =PHP License 3.01
uri = http://www.php.net/license/3_01.txt

[maintainer://handlename]
name = Hideyuki Shimooka
email = shimooka@doyouphp.jp
role = lead

;[file://<filepath>]
;commandscript = command
;ignore = 1
;platform = windows
;install = renamefile
;; role value is <php|data|doc|test|script|src>
;role = script

[dep://HTTP_Request]
type = required
channel = pear.php.net
min = 1.4.1
max = 0
recommended = 1.4.1
exclude = 0
providesextension = 0
nodefault = 0

;[installer://<groupname>]
;instructions = <group info message>
;<param_name>.prompt = <param info message>
;<param_name>.type = string
;<param_name>.default = <default value>