Quickstarters

PHPのバックエンドを構築する方法は?

37min

はじめに

このチュートリアルでは、 PHPのバックエンドを構築する方法を学びます。Back4Appを使用して、サーバーサイドで動的なWebアプリケーションを実行します。

データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなど、主要なBack4Appサービスの統合に焦点を当てます。

これらの手順に従うことで、PHPプロジェクトで使用できる安全でスケーラブル、かつ堅牢なバックエンドを作成します。

また、すべてをゼロから構築するのに比べて、Back4Appがバックエンド開発をどのように加速するかを見て、時間と労力を節約できる理由を理解します。

高度なセキュリティの実装、Cloud Jobsを使用したタスクのスケジューリング、Webhookを使用した外部統合の接続方法を発見し、すべてBack4Appのインフラストラクチャに依存します。

最後には、この基本的なサーバーサイドのバックエンドを完全なプロダクションセットアップに成長させる準備が整い、実際の使用のためにサードパーティAPIやカスタムロジックを統合することができます。

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • Back4appアカウントと新しいBack4Appプロジェクト Back4appの始め方。 アカウントを持っていない場合は、無料で作成し、新しいプロジェクトを準備するためのガイドに従ってください。
  • 基本的なPHP開発環境 PHPがインストールされたローカル環境を設定するか、PHPをサポートするホスティング環境を使用できます。 公式PHPドキュメント。
  • cURLサポートまたはHTTPリクエストを送信する方法 ほとんどのPHPインストールにはデフォルトでcURLが含まれています。 cURLのインストール(公式ドキュメント)。
  • ウェブアプリケーションの基本に関する知識 HTTP、サーバーサイドスクリプティング、基本的なデータベースの概念を理解していると役立ちます。

以下の手順に入る前に、これらの前提条件が整っていることを確認してください。Back4Appプロジェクトが設定され、PHP環境が準備されていると、進めやすくなります。

ステップ1 – Back4Appプロジェクトの設定

新しいプロジェクトを作成する

Back4Appでサーバーサイドバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ行っていない場合は、次の手順に従ってください:

  1. Back4Appアカウントにログインする
  2. Back4Appダッシュボードで「新しいアプリ」ボタンをクリックする
  3. アプリに名前を付ける(例えば、「PHP-バックエンド-チュートリアル」)。
Document image


作成が完了すると、新しいBack4Appプロジェクトがダッシュボードに表示されます。このプロジェクトは、今後の設定手順の基盤となります。

REST APIを介してBack4Appに接続する

私たちはParse特有のSDKなしでPHPを使用しているため、通信にはBack4AppのRESTおよびGraphQL APIに依存します。Back4Appダッシュボードから次の認証情報が必要です:

  • アプリケーションID
  • REST APIキー
  • ParseサーバーURL(通常は https://parseapi.back4app.com

これらは、アプリの アプリ設定 または セキュリティとキー セクションに移動することで見つけることができます。

Document image


PHPでは、cURLや他のライブラリを使用してHTTPリクエストを実行できます。以下は、Back4AppにPOSTリクエストを送信する短い例です:

PHP


このスニペットは、PHPアプリケーションをBack4Appバックエンドに接続する方法を示しています。 YOUR_APPLICATION_ID, YOUR_REST_API_KEY, および他のパラメータを自分のキーに合わせて変更してください。そうすることで、サーバーサイドのコードが新しいプロジェクト内のデータを読み書きできるようになります。

ステップ 2 – データベースの設定

データモデルの作成

Back4Appプロジェクトの準備が整ったら、データベースを構築する時です。データモデルは、ウェブアプリケーションのデータがどのように整理されるかを定義します。たとえば、タスクやブログ投稿をクラスに保存することができます。

  1. 「データベース」セクションに移動 あなたのBack4Appダッシュボードで。
  2. 新しいクラスを作成(例:「Todo」)し、次のようなフィールドを追加します: title(String)および isCompleted(Boolean)。
新しいクラスを作成
新しいクラスを作成


Back4Appでは、さまざまなデータ型のためのカラムを作成できます。これには、String, Number, Boolean, Pointer, Relation, File, などが含まれます。また、PHPスクリプトからオブジェクトを最初に保存するときに、スキーマを自動的に作成させることもできます。

カラムを作成
カラムを作成


AIエージェントを使用したデータモデルの作成

Back4AppのAIエージェントはデータモデルの作成を自動化できます:

  1. AIエージェントを ダッシュボードから開きます。
  2. 「新しいToDoアプリをBack4Appで完全なクラススキーマで作成してください。」のような 説明を提供します。
  3. AIエージェントに データベーススキーマを作成させます。
Document image


この機能は時間を節約し、サーバーサイドアプリを一貫性のあるものに保つことができます。

データの読み書き (REST API)

RESTを使用して、あなたの Todo クラスに新しいオブジェクトを保存するには、POSTリクエストを送信できます:

Bash


PHPでは、cURLを使用して同様のことを行います。例えば:

PHP


すべての既存の Todo アイテムをクエリするには:

Bash


データの読み取りと書き込み (GraphQL API)

Back4AppはGraphQLもサポートしています。GraphQLクエリやミューテーションを送信することでデータを挿入または取得できます:

Text


挿入 (ミューテーション):

GraphQL


クエリ:

GraphQL


ライブクエリの使用 (オプション)

リアルタイムの更新が必要な場合は、ライブクエリを検討してください。Back4Appダッシュボードでライブクエリを有効にし、PHP環境(または別のクライアント)からWebSocketアプローチを使用して変更を購読します。JavaScriptクライアントで一般的ですが、必要に応じてPHPで別のソケットを設定できます。詳細については、Back4Appライブクエリドキュメントをご覧ください。

ステップ3 – ACLとCLPによるセキュリティの適用

簡単な概要

ACL(アクセス制御リスト)CLP(クラスレベルの権限)は、誰がオブジェクトを読み書きできるかを制御することでデータを保護します。これにより、不正アクセスからバックエンドを保護します。

Document image


ステップバイステップ

  1. データベースダッシュボードでクラスレベルの権限(CLP)を設定します。 公開の読み書きを制限したり、認証を要求したりできます。
  2. 各オブジェクトにACLを設定します。 より詳細な制御が必要な場合。ACLは特定のユーザーまたはロールに対して読み書きアクセスを指定できます。

ステップ4 – クラウドコード関数の作成

クラウドコードの利点

クラウドコードを使用すると、サーバー側のJavaScriptを実行してビジネスロジック、トリガー、またはバリデーションなどのタスクを実行できます。自分のサーバーを設定することなく、特定のコードを隠したり、データ変換を行ったりできます。

例の関数

テキストの長さを計算するシンプルなクラウドコード関数:

JS


この関数は、PHPスクリプトからRESTを使用して呼び出すことができます:

Bash


デプロイメント

Cloud Codeをデプロイするには、Back4App CLIまたはBack4Appダッシュボードを使用できます。

NPMモジュール

追加のライブラリが必要な場合は、npmでインストールし、Cloud Codeにインポートしてください。これは、高度なサーバーサイド統合に役立ちます。

ステップ5 – 認証の設定

認証を有効にする

デフォルトでは、あなたのBack4Appプロジェクトには、Parse.Userクラスを介したユーザー認証があります。ユーザーがメールを確認する必要があるか、ユーザー名/パスワードでのみログインするかを制御できます。

サインアップ、ログイン、ログアウト (REST)

ユーザーを作成する:

Bash


既存のユーザーでログインする:

Bash


ソーシャルログイン

ソーシャルログイン(Google、Apple、Facebook)は、OAuthフローを設定することで可能です。手順については、ソーシャルログインのドキュメント。

ステップ6 – ファイルストレージの取り扱い

ファイルストレージの設定

RESTを通じてファイルをアップロードできます:

Bash


JSONレスポンスにはファイルURLが含まれています。このURLをクラスに保存して、アップロードされたファイルを参照できます。

Bash


セキュリティの考慮事項

認証されたユーザーまたは特定の役割からのみファイルアップロードを許可できます。サーバー設定でファイルアップロードルールを構成してください。

ステップ7 – メール確認とパスワードリセット

概要

メール確認は、有効なメールアドレスのみが使用されることを保証します。パスワードリセットは、ユーザーが安全にアカウントを回復できるようにします。

ダッシュボード設定

  1. Back4Appダッシュボードで, アプリ設定 > メールに移動します。
  2. メール確認を有効にすると、希望するテンプレートを設定します。
  3. パスワードリセットを有効にすることで、ユーザーがアカウントを回復できるようにします。

実装

有効にすると、ユーザーのサインアップが確認メールをトリガーします。また、次のコマンドを使用してパスワードのリセットを促すこともできます:

Bash


ステップ8 – クラウドジョブによるタスクのスケジューリング

クラウドジョブの機能

クラウドジョブを使用すると、古いデータの削除や定期的なメールの送信などのタスクを自動化できます。これらはあなたの main.js に記述し、Back4Appのダッシュボードでスケジュールできます。

JS

  1. このコードを Back4Appにデプロイします。
  2. ダッシュボードで ジョブをスケジュールします。 アプリ設定 > サーバー設定 > バックグラウンドジョブの下で。
クラウドジョブのスケジューリング
クラウドジョブのスケジューリング


ステップ9 – ウェブフックの統合

定義

ウェブフックは、イベントが発生したときに他のサービスにHTTPリクエストを送信することを可能にします。たとえば、Back4Appクラスに新しいレコードが作成されたときなどです。これは、外部統合、支払いプラットフォーム、メールマーケティングツール、またはSlack通知などに役立ちます。

設定

  1. ウェブフックパネルをBack4Appダッシュボードで開きます > もっと > ウェブフック.
  2. 新しいウェブフックを追加し、イベントデータを送信したいエンドポイントURLを指定します。
  3. トリガーを選択(例:オブジェクトの作成、更新、または削除)。
ウェブフックの追加
ウェブフックの追加


また、クラウドコードトリガーでウェブフックを定義し、axiosのようなNode.jsモジュールを使用してHTTPリクエストを行うこともできます。

BeforeSave WebHook
BeforeSave WebHook


ステップ 10 – Back4App 管理パネルの探索

Back4App Admin App」は、非技術的なユーザーや管理者がコードを書くことなくデータを管理できるモデル中心のインターフェースです。標準の Parse ダッシュボードよりも直感的なデータ処理体験を提供します。

どこで見つけるか

  1. 管理アプリを有効にするには、アプリダッシュボード > その他 > 管理アプリに移動します。
  2. 「管理アプリを有効にする」をクリックし、管理者の資格情報を設定します。
  3. 管理アプリにアクセスするためのサブドメインを選択します。
管理アプリを有効にする
管理アプリを有効にする

Document image


新しく作成した管理者の資格情報でログインして、データベースレコード、ユーザーアカウント、役割などの管理を開始します。

Document image


結論

このチュートリアルでは、Back4Appを使用して、あなたの PHP ウェブアプリケーションのサーバーサイドバックエンドを構築する方法を学びました。安全なデータベースを設定し、リアルタイム機能を活用し、Cloud Codeでカスタムロジックを定義し、ユーザー認証、ファイルストレージ、スケジュールされたジョブを探求しました。また、Webhookと管理パネルが外部サービスと統合し、データ管理を簡素化する方法も見ました。

この基盤が整ったことで、次のPHPプロジェクトに必要に応じて拡張できる柔軟でスケーラブルなバックエンドを持つことができます。アプリケーションをさらに強力でダイナミックにするために、高度な技術、カスタムロール、またはサードパーティAPIを探求し続けてください。

次のステップ

  • 本番環境向けのPHPアプリケーションを洗練させる キャッシング、負荷分散、または高度なセキュリティを追加することで。
  • ロールベースのアクセス制御を追加する または、ユーザー基盤が必要とする場合はユニークな認証フローを追加します。
  • 公式のBack4Appドキュメントを参照する パフォーマンスチューニング、ログ、分析についてもっと学ぶために。
  • 追加のチュートリアルを試す そして、ここで学んだ技術を使用して、eコマースからソーシャルプラットフォームまでの実世界のソリューションを構築します。