>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
PHP

PHPでGoogle Cloudを使う際に車輪の再開発を避ける方法

1,042 スター

こんな状況を想像してみてください:Cloud Storageへのファイルアップロードを素早く追加する必要がある、またはVision APIでテキスト認識をセットアップする必要がある。Googleの公式ドキュメントを開くと、情報の大波が襲ってきます。クライアントライブラリ、サービスアカウント認証、果てしなく続くJSON設定。「ファイルを1つアップロードしたいだけなのに、こんなに複雑なのか?」という考えが頭の中を駆け巡ります。

答えは、いいえ、複雑ではありません。Googleにはphp-docs-samplesというリポジトリがあります。メインのSDKの影に隠れることが多いですが、まさにこれが何時間(時には何日も)の検索を節約してくれるものです。PHP開発者向けの、完成されたコードスニペットの巨大なコレクションです。

このリポジトリの中身

端的に言えば、あらゆる考えられるGoogle Cloud Platform(GCP)サービスの動作例を集めたものです。複雑な抽象化や「完璧なフレームワーク」を構築しようとする試みは一切ありません。特定のタスクを解決する、骨太のコードだけです。

このプロジェクトは2012年から存在します。この年月を経て、素晴らしい規模に成長しました。中身には以下の例の他多数が含まれています:

  • データストレージ(Cloud Storage、Firestore、Spanner)
  • 機械学習(Vision、Translation、Natural Language)
  • インフラ(Compute Engine、Cloud Functions)
  • キューとメッセージング(Pub/Sub)

実践での活用方法

公式SDKの主な問題は、それらが汎用過ぎて複雑であることです。php-docs-samplesではアプローチが異なります:「これが関数で、こうやって呼び出します」。

画像とニューラルネットワークの操作

Vision APIに送信する画像を適切にパッケージ化する方法を調べる代わりに、visionフォルダを覗くだけで済みます。顔検出、テキスト認識、ロゴ検索の例があります。メソッドをコピーし、APIキーを置き換えたら、そのまま動作します。

Cloud Functionsをスムーズに

Cloud FunctionsでPHPを書く場合、ローカルデバッグは結構骨の折れる作業です。リポジトリにはセクションfunctionsがあり、HTTPリクエストの処理方法和またはCloud Storageイベントの応答方法を示しています。これにより、すべての変更をクラウドにデプロイして確認することなく、呼び出しシグネチャを理解できます。

データベースの操作

認証の特殊性 인해、Google Cloud SpannerまたはFirestoreへのPHPでの接続セットアップはtrivialなタスクではありません。例では明確に分離されています:どこでインスタンスを作成し、データスキーマをどのように記述し、トランザクションをどのように実行するかを説明します。

技術的な側面

すべてのコードは公式ライブラリgoogle/cloud-*を使用した純粋なPHPで書かれています。つまり、Composerで必要なパッケージを追加する必要があります。

興味深いポイント:リポジトリ構造はGoogle Cloudドキュメント構造と一致しています。Google Docsで記事を読んでいて、PHPコードブロック看到了場合、それはここから引用された可能性が高いです。これにより、リポジトリをオフラインリファレンスとして使用できます。

マシン上で任意のサンプルを実行するには、通常は以下の手順が必要です:

  1. リポジトリをクローンする。
  2. 目的のディレクトリに移動する(例:vision/src/detect_face.php)。
  3. composer installを実行する。
  4. サービスアカウントキーファイルを指す環境変数GOOGLE_APPLICATION_CREDENTIALSを設定する。

学ぶ価値はあるか

APIリファレンスだけを読み込んでクラウド統合を「ゼロから」実装しようとする開発者に頻繁に遭遇します。それは痛い道です。php-docs-samplesは本質的に、試験で許可されているカンニングシートです。

このプロジェクトが最も恩恵を受けるのは次のような人々です:

  • ローカルサーバーからGCPに移行したばかりで、ドキュメントを読むのに1週間をかけたくない人。
  • GoogleのAIサービスを使用して素早くプロトタイプを構築する必要がある開発者。
  • PHPで自動化スクリプトを書くシステム管理者。

もちろん、このプロジェクトは完璧ではありません。エラー処理が最小限で、アーキテクチャが単一ファイルに縮小されているなど、一部の例は単純化しすぎているに見えるかもしれません。しかし、学習目的やクイックスタートには、利用可能な最良のリソースです。

Google Cloudでの作業を予定しているなら、このリポジトリをブックマークするかフォークしておきましょう。早かれ遅かれ、Pub/Subにメッセージを正しく送信する方法の例が必要になり、Stack Overflowで検索しなくてよかったと、きっと喜ぶことになるでしょう。

関連プロジェクト