PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

構造 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

構造

構造 – Services_Ebay の構造

Services_Ebay の構造についての概要

Services_Ebay は多くの小さなクラスで構成されています。これにより、 使用するコードの量を少なくすることができます。 あなたのアプリケーションで実際に使用する機能のコードのみが読み込まれ、 パースされます。

ここでは、提供されているさまざまな型のオブジェクトについて、 どのような場合にそれを使用するのかを簡単に説明します。

Services_Ebay

Services_Ebay クラスは次の目的で使用します。

  1. ファクトリメソッドの提供

    Services_Ebay は、Services_Ebay に含まれるその他すべてのクラスの 読み込みとインスタンス化のためのメソッドを提供します。 つまり、あなた自身がインクルードして インスタンスを作成すべきクラスはこれだけだということです。 ファクトリメソッドに該当するのは loadApiCall()getSession() および loadModel() です。

  2. 定数の提供

    このクラスではまた、定数をいくつか定義しています。 たとえばアプリケーションで必要となる eBay サイト ID などです。 定数に含まれるのは Services_Ebay::SITEID_IDServices_Ebay::AUTH_TYPE_TOKEN あるいは Services_Ebay::FEEDBACK_BRIEF です。 eBay ウェブサービスが XML タグに整数値を期待している場面ではいつも、 Services_Ebay は該当する定数を提供しようとします。

  3. 静的なヘルパメソッド群の提供

    このクラスでは、いくつかのヘルパメソッドが定義されています。 これは、getAvailableApiCalls() のように静的にコールすることができます。

  4. プロキシクラスとしての動作

    最も重要な使用法は、Services_Ebay は API コールのプロキシクラスとして動作することです。 つまり、このクラスのメソッドをコールすると、 それが適切なコールオブジェクトにリダイレクトされるということです。

Services_Ebay_Session

Services_Ebay_Session クラスは、 通信する XML ストリームのシリアライズ/アンシリアライズを処理するために使用します。 さらに、必要となる HTTP ヘッダを作成し、ユーザ認証の処理も行います。

おそらく、あなたはセッションを常に間接的に使用することになるでしょう。 つまり、まず最初にセッションを Services_Ebay オブジェクトにわたし、Services_Ebay オブジェクトがそれを使用して API をコールするということです。

セッションクラスの使用

<?php
require_once 'Services/Ebay.php';
    
// 認証データを渡します
$session Services_Ebay::getSession($devId$appId$certId);
$session->setToken($token);

// 作成したセッションを用いて、新しいプロキシオブジェクトを作成します
$ebay = new Services_Ebay($session);
?>

Services_Ebay_Transport

Services_Ebay_Transport クラスの使用目的は、 eBay ウェブサービスへの接続を確立すること、 および Services_Ebay_Session が作成した生データの送受信を行うことです。

理屈上はさまざまなトランスポートクラスが存在してしかるべきです。 しかし、PHP のストリーム関数やいくつかの SSL ライブラリのバグのせいで、 実際に動作するトランスポートクラスは Services_Ebay_Transport_Curl のみとなっています。これは PHP の curl 拡張モジュールを使用します。

Services_Ebay_Call

Services_Ebay_Call クラスは eBay ウェブサービスが提供する API コールに関する情報を含みます。 各 API コールはオブジェクトにカプセル化され、 そのオブジェクトには API コールに関する情報が含まれます。 例えば、使用する XML タグや期待する返り値などです。

このオブジェクトには二通りの使用法があります。

  1. インスタンスを直接作成し (Services_Ebay のファクトリメソッドを使用するのがベストです)、すべてのパラメータを渡して Services_Ebay_Call::call() を起動します。このメソッドにセッションオブジェクトを渡します。

  2. Services_Ebay をプロキシオブジェクトとして使用します。 PHP5 の新しい機能であるオブジェクトのオーバーロードを使用して、 すべての操作が可能です。

Call オブジェクトを直接操作するより、Services_Ebay をプロキシとして使用する方法を推奨します。 Services_Ebay はクラスのインスタンスを作成し、 パラメータを渡して Call オブジェクトの call メソッドを起動します。

Services_Ebay_Model

Services_Ebay_Model クラスは、eBay のサーバに保存されたリモートデータをローカルで保持するコンテナとして動作します。 例えば、Services_Ebay::getItem() をコールすると、 このメソッドは Services_Ebay_Model_Item のインスタンスを返します。ここには、商品についての情報のほかに Services_Ebay_Model_Item::addToDescription() のようなヘルパメソッドが含まれ、新しい API コールをカプセル化します。

現在 Services_Ebay が提供しているモデルクラスは accounts, disputes (single dispute and a list of disputes), user feedback (summary and a single feedback entry), items and list of items, MyeBay, orders, preferences, search results, shipments, eBay stores, transactions および users です。

Services_Ebay_Cache

Services_Ebay_Cache クラスは、eBay ウェブサービスから取得した情報をローカルにキャッシュします。 あなたのスクリプトには一切手を入れる必要はありません。 任意のモデル型についてキャッシュのインスタンスを登録すると、 Services_Ebay は、時間のかかる API コールの前にキャッシュを検索するようになります。

キャッシュクラスは非常に高いレベルでの抽象化を行っており、 新しいキャッシュコンテナを作成することが可能です。そのため、 データベースでも共有メモリでも、お望みの場所にデータを保存することができます。 現在は、使用できるコンテナは一種類だけです。 これはデータをローカルのファイルシステムに保存します。

キャッシュがまだ有効かどうかを調べるには Services_Ebay_Cache_ExpiryCheck のインスタンスを使用します。これを使用すると、 オークションの終了時刻の少し前に期限切れとなるような "かしこい" キャッシュを作成することができます。

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「構造」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | 構造」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: