クイックスターターズ

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

33min

はじめに

このチュートリアルでは、 Back4appを使用してYii 2のバックエンドを構築する方法を学びます。

Yii 2は、安全で効率的なウェブアプリケーションを作成するのに役立つ人気のオープンソースPHPフレームワークです。

YiiフレームワークをBack4appと統合することで、データベース管理、クラウド機能、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなどの強力な機能を活用でき、バックエンド開発プロセスを加速させることができます。

Back4appの環境を活用して手動サーバー設定を削減し、Yii 2コードの記述に集中できるようにする方法を見ていきます。

これらの手順に従うことで、堅牢なセキュリティ制御(ACL、CLP)、定期的なタスクのスケジューリング、Webhookを介した外部統合の設定など、重要な機能に関する実践的な経験を得ることができます。

このチュートリアルの終わりまでには、あなたのYii 2プロジェクトのための堅固なバックエンド構造が整い、プロダクションにスケールアップする準備が整うか、カスタムビジネスロジックで強化することができます。

また、サードパーティAPIを統合したり、ウェブアプリケーションに新しい機能を追加する準備も整います。

前提条件

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

  • Back4appアカウントと新しいBack4appプロジェクト Back4appの始め方。 アカウントをお持ちでない場合は、無料でサインアップし、リンクされたガイドに従ってプロジェクトを準備してください。
  • ローカルのYii 2開発環境 Yii 2は、Composerを使用してダウンロードし、Yii 2公式ガイドに従ってセットアップしてください。
  • PHP(バージョン7.4以上)がインストールされていること Yii 2を実行し、Composerパッケージを管理するには、互換性のあるPHP環境が必要です。
  • PHPと基本的なYii 2の概念に精通していること Yiiフレームワークが初めての場合は、公式Yii 2ドキュメント。

始める前に、これらの前提条件がすべて整っていることを確認してください。Back4appプロジェクトが設定され、ローカルのYii 2環境が準備されていると、より簡単に進めることができます。

ステップ1 – Back4Appで新しいプロジェクトを作成し、接続する

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

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

  1. Back4appアカウントにログインする
  2. Back4appダッシュボードで「新しいアプリ」ボタンをクリックする
  3. アプリの名前を付ける(例:「Yii2-Backend-Tutorial」)。
Document image


プロジェクトが作成されると、Back4appのダッシュボードに表示されます。これは、このチュートリアルで探求するすべてのバックエンド設定の基盤となります。

Parse APIを介して接続する

Back4appは、内部でParseプラットフォームを使用しています。Parse PHP SDKが存在しますが、ParseのRESTまたはGraphQL APIを使用して、Yii 2アプリケーションをBack4appに統合することもできます。

このアプローチは柔軟で、YiiコントローラーやモデルからBack4appにHTTPまたはGraphQLリクエストを送信するコードを書くことができます。

Parseキーを取得する

  1. Back4appのダッシュボードで、アプリの 「アプリ設定」 または 「セキュリティとキー」 に移動します。
  2. あなたの アプリケーションID, REST APIキー, および ParseサーバーURL を見つけます(通常は https://parseapi.back4app.com)。
Document image


これらの資格情報は手元に置いておいてください。Yii 2アプリケーションからBack4appにリクエストを送信する際に必要になります。

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

あなたのBack4appプロジェクトには、Parse Serverによって自動的に管理されるクラウドベースのデータベースが付属しています。REST、GraphQL、またはBack4appのAIエージェントを使用してデータモデルを作成し、オブジェクトを保存できます。

データモデルの作成

  1. 「データベース」セクションをあなたのBack4appダッシュボードで開きます。
  2. 新しいクラスを作成します(例:「Todo」)および title(文字列)や isCompleted(ブール値)などの列を追加します。
新しいクラスを作成
新しいクラスを作成


Parseにこれらの列を自動的に作成させることもできます。最初にYiiコードがデータを送信するときに。さらに、Back4appの AIエージェントがスキーマの設定を手伝うことができます:

  1. AIエージェントをアプリダッシュボードまたはメニューから開きます。
  2. データモデルを説明します(例:「Todoクラスを持つTodoアプリのスキーマを作成」)。
  3. AIエージェントにスキーマを生成させます。
Document image


REST APIを使用したデータの読み取りと書き込み

以下は、REST APIを使用して Todo オブジェクトを保存する例です。これをYii 2コントローラーアクションでcURLまたはPHPの file_get_contents() を使用してJSONデータを投稿する形で実装することができます。

Bash


コントローラー内のYii 2 PHPコードスニペットの例(cURLを使用):

PHP


RESTを使用して同じデータをクエリする場合は、次のようになります:

Bash


GraphQL APIを使用したデータの読み取りと書き込み

ParseのGraphQLインターフェースを使用してデータを作成および読み取ることもできます。たとえば、Todoを作成するには:

GraphQL


Yii 2では、GraphQLライブラリまたは単純なHTTPリクエストを使用してBack4appのGraphQLエンドポイントと対話できます: https://parseapi.back4app.com/graphql

ライブクエリの操作(オプション)

リアルタイムの更新のために、Back4appはライブクエリをサポートしており、クラスの変更にサブスクライブできます。Yii 2での典型的な使用はあまり一般的ではないかもしれませんが、Back4appの設定でライブクエリを有効にし、PHPでWebSocket接続を処理することは可能です。これはより高度な内容なので、Parseライブクエリのドキュメントを参照して、PHPベースのWebアプリケーションでリアルタイム機能を実装する方法の詳細を確認してください。

ステップ3 – ACLとCLPを使用したセキュリティの適用

概要

Back4appは アクセス制御リスト (ACL)クラスレベルの権限 (CLP) を提供してデータを保護します。ACLは特定のオブジェクトに適用され、CLPは各クラスのグローバルな権限を定義します。

Document image


クラスレベルの権限の設定

  1. Back4appダッシュボードの データベース に移動し、クラス(例: “Todo”)を選択します。
  2. CLPタブを開く, そして読み取り/書き込み権限を設定します(例: “認証が必要” または “アクセス不可”)。

ACLの設定

RESTまたはGraphQLを介してデータを作成または更新する際に、_ACL フィールドを含めることで、個々のオブジェクトにACLを設定できます。例えば、RESTを使用する場合:

Bash


このオブジェクトは、指定されたobjectIdを持つユーザーのみがアクセスできるようになります。

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

クラウドコードの利点

Back4appでクラウドコードを使用すると、自分のサーバーを管理することなく、カスタムサーバーサイドロジックを実行できます。 ビジネスロジック, データ検証, または トリガー を作成して、オブジェクトの作成、更新、削除を行うことができます。

クラウドコード関数の例

以下は、テキストの長さを計算するシンプルなクラウドコード関数(JavaScriptで記述)です:

main.js


デプロイメント

Cloud Codeをデプロイするには、Back4app CLIを使用するか、直接Cloud Code > FunctionsセクションでBack4appダッシュボードにて行います:

  • Back4app CLI:
  • ダッシュボード: コードをmain.jsにコピー/ペーストし、デプロイをクリックします。
Document image


クラウド関数の呼び出し

Yii 2からシンプルなREST POSTリクエストを使用して関数を呼び出すことができます:

Bash


またはGraphQLを介して:

GraphQL


ステップ5 – 認証の設定

Back4appにおけるユーザー認証

Back4appは、Parse Userクラスを安全な認証の基盤として使用します。RESTまたはGraphQL呼び出しを通じてユーザーを作成および確認できます。

RESTを使用したユーザーの作成

Bash


ユーザーのログイン

Bash

Bash


ソーシャルログイン

ソーシャルログイン(Google、Apple、Facebookなど)のために、Back4appでOAuth設定を構成し、必要なトークンを処理するためにYii 2アプリケーションを設定します。Back4appのソーシャルログインドキュメントを参照して、プロバイダー固有のガイドラインを確認してください。

メール確認とパスワードリセット

ユーザーのセキュリティを向上させるために、Back4appダッシュボードのメール設定でメール確認パスワードリセットを有効にしてください。

Back4App ダッシュボードの設定

  1. メール認証を有効にする アプリ設定 > メール設定の下で。
  2. “From”アドレスとメールテンプレートをカスタマイズする。
  3. 新しいユーザーを作成して、認証メールが送信されることを確認することでテストする。

実装

あなたの Yii 2 アプリケーションでは、ユーザーを Parse の パスワードリセットエンドポイント をトリガーするルートに誘導します。実際のメールを送信するなどのフローは、Back4app インフラストラクチャによって処理されます。

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

クラウドジョブの機能

Back4app のクラウドジョブを使用すると、データのクリーンアップや通知の送信などの定期的なタスクをスケジュールできます。これらを Cloud Code (main.js) で定義し、ダッシュボードでスケジュールします。

例: クリーンアップジョブ

main.js


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

定義

ウェブフックを使用すると、Back4app アプリケーションがイベントが発生したときに外部サービスに自動化された HTTP リクエストを送信できます。たとえば、新しい Todo を作成する場合などです。

設定

  1. Back4app ダッシュボードで, More > WebHooks に移動します。
  2. Webhook エンドポイントを追加します (例: https://your-external-service.com/webhook)。
  3. トリガーを設定します (例: “Todo クラスに新しいレコード”)。
Webhook の追加
Webhook の追加


Webhookを使用すると、Todoオブジェクトが作成または更新されるたびに、他のサービス(Slack、Stripe、またはカスタムAPIなど)に通知を送信できます。

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

どこで見つけるか

Back4app管理アプリは、コードを書くことなくデータを管理するためのポイントアンドクリックインターフェースです。これを有効にするには、アプリダッシュボード > その他 > 管理アプリにアクセスし、次に管理アプリを有効にする必要があります。

管理アプリを有効にする
管理アプリを有効にする


機能

管理ユーザーを作成した後、管理アプリ用の専用サブドメインが提供されます。これにより、承認されたチームメンバーは、Back4appデータベースのCRUD操作、ログのレビュー、または分析の表示のためのクリーンなインターフェースを利用できます。コードは必要ありません。

Document image


結論

このチュートリアルでは、Back4appを使用してYii 2のバックエンドを構築する方法を発見しました。

クラウドベースのデータベースを構成し、ACLとCLPで堅牢なセキュリティを設定し、Cloud Jobsでバックグラウンドタスクをスケジュールし、Webhookを通じて外部サービスを統合しました。また、ユーザー認証とファイルストレージを安全に管理する方法も見ました。

オープンソースのYiiフレームワークを使用してWebアプリケーションを構築し、Back4appのスケーラブルなインフラストラクチャを組み合わせたことで、開発と成長のための強力な環境が整いました。

次のステップ

  • 本番環境に向けて進むために、データモデルを拡張し、追加のセキュリティ設定を適用し、パフォーマンスを最適化します。
  • 外部APIを統合する(決済ゲートウェイ、メールプロバイダー)をCloud Codeまたは直接Webhookを通じて行います。
  • 公式のBack4appドキュメントを探る高度なセキュリティ、ログ分析、パフォーマンス最適化などの深いトピックについて。
  • さらに学ぶ役割ベースのアクセス制御、キャッシング戦略、高度なデータベース関係を使用して、Yii 2で複雑なWebアプリケーションを構築する方法について。

この基盤をもとに、Yii 2プロジェクトをさらに強化し、ビジネス特有のロジックに焦点を当て、ユーザーのために堅牢でスケーラブルな機能を提供できます。コーディングとモダンなWebアプリケーションの構築を楽しんでください。