SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend FrameworkでGoogleアプリケーションを使い倒す

Zend_GDataでYoutube動画検索アプリケーションを作成しよう

Zend FrameworkでGoogleアプリケーションを使い倒す(1)


Google Data APIとZend_Gdataの連携

 冒頭、Zend_Gdataは「PHPとGoogleサービスを連携させるための関数の集合体」であると述べましたが、もう少し踏み込んでみましょう。

概要

 まずはざっくりと概要をつかみましょう。

図1:Google Data APIとZend Framework
図1:Google Data APIとZend Framework

[1]クライアントが要求を送信

 クライアントが何らかの要求をPHPアプリケーションに送信します。

[2]Zend_Gdataが要求をGoogleサービス向けに加工

 Googleの各サービスに特化したZend_Gdataの各クラスが、受け取った要求をGoogleサービスへ送信するリクエストのパラメータとして設定します。

[3]Zend_Http_ClientがGoogle Data APIにリクエストを送信

 Zend_Gdataから内部的に呼び出されるZend_Http_ClientがGoogle Data APIに対してHTTPリクエストとしてパラメータを送信します。Zend_Http_ClientはZend Frameworkの提供する、HTTPリクエストを簡単に送信するためのクラスです。

 Google Data APIは要求としてHTTPリクエストを受け付ける仕様になっています。PHPアプリケーションでデータを取得したい場合はHTTP GETを、更新したい場合はHTTP PUTを送信することになります。

[4]Google Data APIがレスポンスとしてXMLファイルを送信

 Google Data APIでは受け取ったHTTPリクエストを基に対象のGoogleサービスとデータの送受信を行います。HTTP GETを受けた場合には何らかのレスポンスを、Google Dataと呼ばれるフィードとしてPHPアプリケーション側に返信します。Google Dataの実体は、RSS(Really Simple Syndication)やAtom形式のXML文書です。

[5]受信したXMLファイルをZend_GdataがPHPアプリケーション向けに加工

 Zend_Http_Clientが受信したXMLファイルの内容を、Zend_Gdataの関数を利用して取得します。XMLファイルの要素をそのままPHPアプリケーションで抜き出すのは面倒です。しかし、Zend_Gdataでは、対象のGoogleアプリケーションごとに特化した関数で、XMLの要素を簡単に抜き出すことができます。

[6]クライアントに結果を表示

 Zend_Gdataの関数を利用して、表示に必要な情報を取得し、クライアントに結果を返します。

Zend_Gdataのクラス

 Zend_Gdataで提供されているクラスはその役割、つまり継承元のクラスによって下記の種類に分類されます。

Zend_Gdataのクラス
種類 継承元 内容
サービスクラス Zend_Gdata_App Googleのサービスとやり取りを行うもの
クエリクラス Zend_Gdata_Query サービスからデータを取得するクエリを作成
フィードクラス Zend_Gdata_App_Feed サービスから取得したフィードを表す
エントリクラス Zend_Gdata_App_Entry サービスから取得した個々のエントリを表す
その他のデータモデルクラス Zend_Gdata_App_Extension サービスから取得したデータ保存、サービスに送信するデータ構築などを行う

 上記の各クラスを継承した、各サービス専用のクラスや汎用的なクラスがあり、それを利用することでGoogleのサービスと円滑にやりとりが行えます。

次のページ
YouTubeで動画検索

この記事は参考になりましたか?

Zend FrameworkでGoogleアプリケーションを使い倒す連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 森山 絵美(モリヤマ エミ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3695 2009/04/20 11:23

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー