Yii 2のバックエンドを構築する方法は?
このチュートリアルでは、 Back4appを使用してYii 2のバックエンドを構築する方法を学びます。
Yii 2は、安全で効率的なウェブアプリケーションを作成するのに役立つ人気のオープンソースPHPフレームワークです。
YiiフレームワークをBack4appと統合することで、データベース管理、クラウド機能、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなどの強力な機能を活用でき、バックエンド開発プロセスを加速させることができます。
Back4appの環境を活用して手動サーバー設定を削減し、Yii 2コードの記述に集中できるようにする方法を見ていきます。
これらの手順に従うことで、堅牢なセキュリティ制御(ACL、CLP)、定期的なタスクのスケジューリング、Webhookを介した外部統合の設定など、重要な機能に関する実践的な経験を得ることができます。
このチュートリアルの終わりまでには、あなたのYii 2プロジェクトのための堅固なバックエンド構造が整い、プロダクションにスケールアップする準備が整うか、カスタムビジネスロジックで強化することができます。
また、サードパーティAPIを統合したり、ウェブアプリケーションに新しい機能を追加する準備も整います。
このチュートリアルを完了するには、次のものが必要です:
- Back4appアカウントと新しいBack4appプロジェクト Back4appの始め方。 アカウントをお持ちでない場合は、無料でサインアップし、リンクされたガイドに従ってプロジェクトを準備してください。
- PHP(バージョン7.4以上)がインストールされていること Yii 2を実行し、Composerパッケージを管理するには、互換性のあるPHP環境が必要です。
始める前に、これらの前提条件がすべて整っていることを確認してください。Back4appプロジェクトが設定され、ローカルのYii 2環境が準備されていると、より簡単に進めることができます。
Yii 2のバックエンドを構築する最初のステップは、新しいBack4appプロジェクトを作成することです。まだ行っていない場合は、次の手順に従ってください:
- Back4appアカウントにログインする。
- Back4appダッシュボードで「新しいアプリ」ボタンをクリックする。
- アプリの名前を付ける(例:「Yii2-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
プロジェクトが作成されると、Back4appのダッシュボードに表示されます。これは、このチュートリアルで探求するすべてのバックエンド設定の基盤となります。
Back4appは、内部でParseプラットフォームを使用しています。Parse PHP SDKが存在しますが、ParseのRESTまたはGraphQL APIを使用して、Yii 2アプリケーションをBack4appに統合することもできます。
このアプローチは柔軟で、YiiコントローラーやモデルからBack4appにHTTPまたはGraphQLリクエストを送信するコードを書くことができます。
- 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)
これらの資格情報は手元に置いておいてください。Yii 2アプリケーションからBack4appにリクエストを送信する際に必要になります。
あなたのBack4appプロジェクトには、Parse Serverによって自動的に管理されるクラウドベースのデータベースが付属しています。REST、GraphQL、またはBack4appのAIエージェントを使用してデータモデルを作成し、オブジェクトを保存できます。
- 「データベース」セクションをあなたのBack4appダッシュボードで開きます。
- 新しいクラスを作成します(例:「Todo」)および title(文字列)や isCompleted(ブール値)などの列を追加します。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Parseにこれらの列を自動的に作成させることもできます。最初にYiiコードがデータを送信するときに。さらに、Back4appの AIエージェントがスキーマの設定を手伝うことができます:
- AIエージェントをアプリダッシュボードまたはメニューから開きます。
- データモデルを説明します(例:「Todoクラスを持つTodoアプリのスキーマを作成」)。
- AIエージェントにスキーマを生成させます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
以下は、REST APIを使用して Todo オブジェクトを保存する例です。これをYii 2コントローラーアクションでcURLまたはPHPの file_get_contents() を使用してJSONデータを投稿する形で実装することができます。
コントローラー内のYii 2 PHPコードスニペットの例(cURLを使用):
RESTを使用して同じデータをクエリする場合は、次のようになります:
ParseのGraphQLインターフェースを使用してデータを作成および読み取ることもできます。たとえば、Todoを作成するには:
Yii 2では、GraphQLライブラリまたは単純なHTTPリクエストを使用してBack4appのGraphQLエンドポイントと対話できます: https://parseapi.back4app.com/graphql
リアルタイムの更新のために、Back4appはライブクエリをサポートしており、クラスの変更にサブスクライブできます。Yii 2での典型的な使用はあまり一般的ではないかもしれませんが、Back4appの設定でライブクエリを有効にし、PHPでWebSocket接続を処理することは可能です。これはより高度な内容なので、Parseライブクエリのドキュメントを参照して、PHPベースのWebアプリケーションでリアルタイム機能を実装する方法の詳細を確認してください。
Back4appは アクセス制御リスト (ACL) と クラスレベルの権限 (CLP) を提供してデータを保護します。ACLは特定のオブジェクトに適用され、CLPは各クラスのグローバルな権限を定義します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Back4appダッシュボードの データベース に移動し、クラス(例: “Todo”)を選択します。
- CLPタブを開く, そして読み取り/書き込み権限を設定します(例: “認証が必要” または “アクセス不可”)。
RESTまたはGraphQLを介してデータを作成または更新する際に、_ACL フィールドを含めることで、個々のオブジェクトにACLを設定できます。例えば、RESTを使用する場合:
このオブジェクトは、指定されたobjectIdを持つユーザーのみがアクセスできるようになります。
Back4appでクラウドコードを使用すると、自分のサーバーを管理することなく、カスタムサーバーサイドロジックを実行できます。 ビジネスロジック, データ検証, または トリガー を作成して、オブジェクトの作成、更新、削除を行うことができます。
以下は、テキストの長さを計算するシンプルなクラウドコード関数(JavaScriptで記述)です:
Cloud Codeをデプロイするには、Back4app CLIを使用するか、直接Cloud Code > FunctionsセクションでBack4appダッシュボードにて行います:
- Back4app CLI:
- ダッシュボード: コードをmain.jsにコピー/ペーストし、デプロイをクリックします。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Yii 2からシンプルなREST POSTリクエストを使用して関数を呼び出すことができます:
またはGraphQLを介して:
Back4appは、Parse Userクラスを安全な認証の基盤として使用します。RESTまたはGraphQL呼び出しを通じてユーザーを作成および確認できます。
ソーシャルログイン(Google、Apple、Facebookなど)のために、Back4appでOAuth設定を構成し、必要なトークンを処理するためにYii 2アプリケーションを設定します。Back4appのソーシャルログインドキュメントを参照して、プロバイダー固有のガイドラインを確認してください。
ユーザーのセキュリティを向上させるために、Back4appダッシュボードのメール設定でメール確認とパスワードリセットを有効にしてください。
- メール認証を有効にする アプリ設定 > メール設定の下で。
- “From”アドレスとメールテンプレートをカスタマイズする。
- 新しいユーザーを作成して、認証メールが送信されることを確認することでテストする。
あなたの Yii 2 アプリケーションでは、ユーザーを Parse の パスワードリセットエンドポイント をトリガーするルートに誘導します。実際のメールを送信するなどのフローは、Back4app インフラストラクチャによって処理されます。
Back4app のクラウドジョブを使用すると、データのクリーンアップや通知の送信などの定期的なタスクをスケジュールできます。これらを Cloud Code (main.js) で定義し、ダッシュボードでスケジュールします。
ウェブフックを使用すると、Back4app アプリケーションがイベントが発生したときに外部サービスに自動化された HTTP リクエストを送信できます。たとえば、新しい Todo を作成する場合などです。
- Back4app ダッシュボードで, More > WebHooks に移動します。
- Webhook エンドポイントを追加します (例: https://your-external-service.com/webhook)。
- トリガーを設定します (例: “Todo クラスに新しいレコード”)。
![Webhook の追加 Webhook の追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Webhookを使用すると、Todoオブジェクトが作成または更新されるたびに、他のサービス(Slack、Stripe、またはカスタムAPIなど)に通知を送信できます。
Back4app管理アプリは、コードを書くことなくデータを管理するためのポイントアンドクリックインターフェースです。これを有効にするには、アプリダッシュボード > その他 > 管理アプリにアクセスし、次に管理アプリを有効にする必要があります。
![管理アプリを有効にする 管理アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
管理ユーザーを作成した後、管理アプリ用の専用サブドメインが提供されます。これにより、承認されたチームメンバーは、Back4appデータベースのCRUD操作、ログのレビュー、または分析の表示のためのクリーンなインターフェースを利用できます。コードは必要ありません。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
このチュートリアルでは、Back4appを使用してYii 2のバックエンドを構築する方法を発見しました。
クラウドベースのデータベースを構成し、ACLとCLPで堅牢なセキュリティを設定し、Cloud Jobsでバックグラウンドタスクをスケジュールし、Webhookを通じて外部サービスを統合しました。また、ユーザー認証とファイルストレージを安全に管理する方法も見ました。
オープンソースのYiiフレームワークを使用してWebアプリケーションを構築し、Back4appのスケーラブルなインフラストラクチャを組み合わせたことで、開発と成長のための強力な環境が整いました。
- 本番環境に向けて進むために、データモデルを拡張し、追加のセキュリティ設定を適用し、パフォーマンスを最適化します。
- 外部APIを統合する(決済ゲートウェイ、メールプロバイダー)をCloud Codeまたは直接Webhookを通じて行います。
- 公式のBack4appドキュメントを探る高度なセキュリティ、ログ分析、パフォーマンス最適化などの深いトピックについて。
- さらに学ぶ役割ベースのアクセス制御、キャッシング戦略、高度なデータベース関係を使用して、Yii 2で複雑なWebアプリケーションを構築する方法について。
この基盤をもとに、Yii 2プロジェクトをさらに強化し、ビジネス特有のロジックに焦点を当て、ユーザーのために堅牢でスケーラブルな機能を提供できます。コーディングとモダンなWebアプリケーションの構築を楽しんでください。
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)