PHPのバックエンドを構築する方法は?
このチュートリアルでは、 PHPのバックエンドを構築する方法を学びます。Back4Appを使用して、サーバーサイドで動的なWebアプリケーションを実行します。
データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなど、主要なBack4Appサービスの統合に焦点を当てます。
これらの手順に従うことで、PHPプロジェクトで使用できる安全でスケーラブル、かつ堅牢なバックエンドを作成します。
また、すべてをゼロから構築するのに比べて、Back4Appがバックエンド開発をどのように加速するかを見て、時間と労力を節約できる理由を理解します。
高度なセキュリティの実装、Cloud Jobsを使用したタスクのスケジューリング、Webhookを使用した外部統合の接続方法を発見し、すべてBack4Appのインフラストラクチャに依存します。
最後には、この基本的なサーバーサイドのバックエンドを完全なプロダクションセットアップに成長させる準備が整い、実際の使用のためにサードパーティAPIやカスタムロジックを統合することができます。
このチュートリアルを完了するには、次のものが必要です:
- ウェブアプリケーションの基本に関する知識 HTTP、サーバーサイドスクリプティング、基本的なデータベースの概念を理解していると役立ちます。
以下の手順に入る前に、これらの前提条件が整っていることを確認してください。Back4Appプロジェクトが設定され、PHP環境が準備されていると、進めやすくなります。
Back4Appでサーバーサイドバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ行っていない場合は、次の手順に従ってください:
- Back4Appアカウントにログインする。
- Back4Appダッシュボードで「新しいアプリ」ボタンをクリックする。
- アプリに名前を付ける(例えば、「PHP-バックエンド-チュートリアル」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
作成が完了すると、新しいBack4Appプロジェクトがダッシュボードに表示されます。このプロジェクトは、今後の設定手順の基盤となります。
私たちはParse特有のSDKなしでPHPを使用しているため、通信にはBack4AppのRESTおよびGraphQL APIに依存します。Back4Appダッシュボードから次の認証情報が必要です:
- アプリケーションID
- REST APIキー
- ParseサーバーURL(通常は https://parseapi.back4app.com)
これらは、アプリの アプリ設定 または セキュリティとキー セクションに移動することで見つけることができます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
PHPでは、cURLや他のライブラリを使用してHTTPリクエストを実行できます。以下は、Back4AppにPOSTリクエストを送信する短い例です:
このスニペットは、PHPアプリケーションをBack4Appバックエンドに接続する方法を示しています。 YOUR_APPLICATION_ID, YOUR_REST_API_KEY, および他のパラメータを自分のキーに合わせて変更してください。そうすることで、サーバーサイドのコードが新しいプロジェクト内のデータを読み書きできるようになります。
Back4Appプロジェクトの準備が整ったら、データベースを構築する時です。データモデルは、ウェブアプリケーションのデータがどのように整理されるかを定義します。たとえば、タスクやブログ投稿をクラスに保存することができます。
- 「データベース」セクションに移動 あなたのBack4Appダッシュボードで。
- 新しいクラスを作成(例:「Todo」)し、次のようなフィールドを追加します: title(String)および isCompleted(Boolean)。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4Appでは、さまざまなデータ型のためのカラムを作成できます。これには、String, Number, Boolean, Pointer, Relation, File, などが含まれます。また、PHPスクリプトからオブジェクトを最初に保存するときに、スキーマを自動的に作成させることもできます。
![カラムを作成 カラムを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/DEh9vyxdBTZcslXxkVQMA_image.png?format=webp)
Back4AppのAIエージェントはデータモデルの作成を自動化できます:
- AIエージェントを ダッシュボードから開きます。
- 「新しいToDoアプリをBack4Appで完全なクラススキーマで作成してください。」のような 説明を提供します。
- AIエージェントに データベーススキーマを作成させます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
この機能は時間を節約し、サーバーサイドアプリを一貫性のあるものに保つことができます。
RESTを使用して、あなたの Todo クラスに新しいオブジェクトを保存するには、POSTリクエストを送信できます:
PHPでは、cURLを使用して同様のことを行います。例えば:
すべての既存の Todo アイテムをクエリするには:
Back4AppはGraphQLもサポートしています。GraphQLクエリやミューテーションを送信することでデータを挿入または取得できます:
挿入 (ミューテーション):
クエリ:
リアルタイムの更新が必要な場合は、ライブクエリを検討してください。Back4Appダッシュボードでライブクエリを有効にし、PHP環境(または別のクライアント)からWebSocketアプローチを使用して変更を購読します。JavaScriptクライアントで一般的ですが、必要に応じてPHPで別のソケットを設定できます。詳細については、Back4Appライブクエリドキュメントをご覧ください。
ACL(アクセス制御リスト)とCLP(クラスレベルの権限)は、誰がオブジェクトを読み書きできるかを制御することでデータを保護します。これにより、不正アクセスからバックエンドを保護します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- データベースダッシュボードでクラスレベルの権限(CLP)を設定します。 公開の読み書きを制限したり、認証を要求したりできます。
- 各オブジェクトにACLを設定します。 より詳細な制御が必要な場合。ACLは特定のユーザーまたはロールに対して読み書きアクセスを指定できます。
詳細については、アプリセキュリティガイドラインをご覧ください。
クラウドコードを使用すると、サーバー側のJavaScriptを実行してビジネスロジック、トリガー、またはバリデーションなどのタスクを実行できます。自分のサーバーを設定することなく、特定のコードを隠したり、データ変換を行ったりできます。
テキストの長さを計算するシンプルなクラウドコード関数:
この関数は、PHPスクリプトからRESTを使用して呼び出すことができます:
Cloud Codeをデプロイするには、Back4App CLIまたはBack4Appダッシュボードを使用できます。
追加のライブラリが必要な場合は、npmでインストールし、Cloud Codeにインポートしてください。これは、高度なサーバーサイド統合に役立ちます。
デフォルトでは、あなたのBack4Appプロジェクトには、Parse.Userクラスを介したユーザー認証があります。ユーザーがメールを確認する必要があるか、ユーザー名/パスワードでのみログインするかを制御できます。
ユーザーを作成する:
既存のユーザーでログインする:
ソーシャルログイン(Google、Apple、Facebook)は、OAuthフローを設定することで可能です。手順については、ソーシャルログインのドキュメント。
RESTを通じてファイルをアップロードできます:
JSONレスポンスにはファイルURLが含まれています。このURLをクラスに保存して、アップロードされたファイルを参照できます。
認証されたユーザーまたは特定の役割からのみファイルアップロードを許可できます。サーバー設定でファイルアップロードルールを構成してください。
メール確認は、有効なメールアドレスのみが使用されることを保証します。パスワードリセットは、ユーザーが安全にアカウントを回復できるようにします。
- Back4Appダッシュボードで, アプリ設定 > メールに移動します。
- メール確認を有効にすると、希望するテンプレートを設定します。
- パスワードリセットを有効にすることで、ユーザーがアカウントを回復できるようにします。
有効にすると、ユーザーのサインアップが確認メールをトリガーします。また、次のコマンドを使用してパスワードのリセットを促すこともできます:
クラウドジョブを使用すると、古いデータの削除や定期的なメールの送信などのタスクを自動化できます。これらはあなたの main.js に記述し、Back4Appのダッシュボードでスケジュールできます。
- このコードを Back4Appにデプロイします。
- ダッシュボードで ジョブをスケジュールします。 アプリ設定 > サーバー設定 > バックグラウンドジョブの下で。
![クラウドジョブのスケジューリング クラウドジョブのスケジューリング](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
ウェブフックは、イベントが発生したときに他のサービスにHTTPリクエストを送信することを可能にします。たとえば、Back4Appクラスに新しいレコードが作成されたときなどです。これは、外部統合、支払いプラットフォーム、メールマーケティングツール、またはSlack通知などに役立ちます。
- ウェブフックパネルをBack4Appダッシュボードで開きます > もっと > ウェブフック.
- 新しいウェブフックを追加し、イベントデータを送信したいエンドポイントURLを指定します。
- トリガーを選択(例:オブジェクトの作成、更新、または削除)。
![ウェブフックの追加 ウェブフックの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
また、クラウドコードトリガーでウェブフックを定義し、axiosのようなNode.jsモジュールを使用してHTTPリクエストを行うこともできます。
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
「Back4App Admin App」は、非技術的なユーザーや管理者がコードを書くことなくデータを管理できるモデル中心のインターフェースです。標準の Parse ダッシュボードよりも直感的なデータ処理体験を提供します。
- 管理アプリを有効にするには、アプリダッシュボード > その他 > 管理アプリに移動します。
- 「管理アプリを有効にする」をクリックし、管理者の資格情報を設定します。
- 管理アプリにアクセスするためのサブドメインを選択します。
![管理アプリを有効にする 管理アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
新しく作成した管理者の資格情報でログインして、データベースレコード、ユーザーアカウント、役割などの管理を開始します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
このチュートリアルでは、Back4Appを使用して、あなたの PHP ウェブアプリケーションのサーバーサイドバックエンドを構築する方法を学びました。安全なデータベースを設定し、リアルタイム機能を活用し、Cloud Codeでカスタムロジックを定義し、ユーザー認証、ファイルストレージ、スケジュールされたジョブを探求しました。また、Webhookと管理パネルが外部サービスと統合し、データ管理を簡素化する方法も見ました。
この基盤が整ったことで、次のPHPプロジェクトに必要に応じて拡張できる柔軟でスケーラブルなバックエンドを持つことができます。アプリケーションをさらに強力でダイナミックにするために、高度な技術、カスタムロール、またはサードパーティAPIを探求し続けてください。
- 本番環境向けのPHPアプリケーションを洗練させる キャッシング、負荷分散、または高度なセキュリティを追加することで。
- ロールベースのアクセス制御を追加する または、ユーザー基盤が必要とする場合はユニークな認証フローを追加します。
- 公式のBack4Appドキュメントを参照する パフォーマンスチューニング、ログ、分析についてもっと学ぶために。
- 追加のチュートリアルを試す そして、ここで学んだ技術を使用して、eコマースからソーシャルプラットフォームまでの実世界のソリューションを構築します。
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)