Quickstarters
Feature Overview
How to Build a Backend for Yii 2?
33 分
イントロダクション このチュートリアルでは、 back4appを使用してyii 2のバックエンドを構築する方法 を学びます。 yii 2は、安全で効率的なウェブアプリケーションを作成するのに役立つ人気のオープンソースphpフレームワークです。 yiiフレームワークをback4appと統合することで、データベース管理、クラウド機能、restおよびgraphql api、ユーザー認証、リアルタイムクエリなどの強力な機能を活用でき、バックエンド開発プロセスを加速させることができます。 back4appの環境を活用して手動サーバー設定を削減し、yii 2のコードを書くことに集中できるようになります。 これらの手順に従うことで、堅牢なセキュリティ制御(acl、clp)、定期的なタスクのスケジューリング、webhookを介した外部統合の設定など、重要な機能に関する実践的な経験を得ることができます。 このチュートリアルの終わりまでに、あなたのyii 2プロジェクトのための堅固なバックエンド構造が整い、プロダクションにスケールアップする準備が整うか、カスタムビジネスロジックで強化することができます。 また、サードパーティのapiを統合したり、ウェブアプリケーションに新しい機能を追加する準備も整います。 前提条件 このチュートリアルを完了するには、次のものが必要です back4appアカウントと新しいback4appプロジェクト back4appの始め方。 https //www back4app com/docs/get started/new parse app アカウントをお持ちでない場合は、無料でサインアップし、リンクされたガイドに従ってプロジェクトを準備してください。 ローカルのyii 2開発環境 yii 2は、 composer https //getcomposer org/ を使用してダウンロードし、 yii 2公式ガイド https //www yiiframework com/doc/guide/2 0/en に従ってセットアップしてください。 php(バージョン7 4以上)がインストールされていること yii 2を実行し、composerパッケージを管理するために、互換性のあるphp環境が必要です。 phpと基本的なyii 2の概念に精通していること yiiフレームワークが初めての場合は、 公式yii 2ドキュメント。 https //www yiiframework com/doc/guide/2 0/en 始める前に、これらの前提条件がすべて整っていることを確認してください。back4appプロジェクトを設定し、ローカルのyii 2環境を準備しておくことで、より簡単に進めることができます。 ステップ1 – back4appで新しいプロジェクトを作成し、接続する 新しいプロジェクトを作成する yii 2のバックエンドを構築する最初のステップは、新しいback4appプロジェクトを作成することです。まだ行っていない場合は、次の手順に従ってください back4appアカウントにログインする 。 back4appダッシュボードで「新しいアプリ」ボタンをクリックする 。 アプリの名前を付ける (例:「yii2 backend tutorial」)。 プロジェクトが作成されると、back4appのダッシュボードに表示されます。これは、このチュートリアルで探求するすべてのバックエンド設定の基盤となります。 parse apiを介して接続する back4appは、内部でparseプラットフォームを使用しています。parse php sdkが存在しますが、parseのrestまたはgraphql apiを使用して、yii 2アプリケーションをback4appに統合することもできます。 このアプローチは柔軟で、yiiコントローラーやモデルからback4appにhttpまたはgraphqlリクエストを送信するコードを書くことができます。 parseキーを取得する back4appのダッシュボードで、アプリの 「アプリ設定」 または 「セキュリティとキー」 に移動します。 あなたの アプリケーションid , rest apiキー , および parseサーバーurl を見つけます(通常は https //parseapi back4app com )。 これらの資格情報は手元に置いておいてください。yii 2アプリケーションからback4appにリクエストを送信する際に必要になります。 ステップ2 – データベースの設定 あなたのback4appプロジェクトには、parse serverによって自動的に管理されるクラウドベースのデータベースが付属しています。rest、graphql、またはback4appのaiエージェントを使用してデータモデルを作成し、オブジェクトを保存できます。 データモデルの作成 「データベース」セクションを あなたのback4appダッシュボードで開きます。 新しいクラスを作成します (例:「todo」)そして、次のようなカラムを追加します: title (文字列)と iscompleted (ブール値)。 parseにこれらのカラムを自動的に作成させることもできます。あなたのyiiコードがデータを送信する最初の時に。さらに、back4appの aiエージェント がスキーマの設定を手伝うことができます: アプリダッシュボードまたはメニューから aiエージェントを開きます。 データモデルを説明します (例:「todoクラスを持つtodoアプリのスキーマを作成」)。 aiエージェントに スキーマを生成させます。 rest apiを使用したデータの読み取りと書き込み 以下は、rest apiを使用して todo オブジェクトを保存する例です。これをyii 2コントローラーアクションでcurlまたはphpの file get contents() を使用してjsonデータを投稿する形で実装することができます。 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo コントローラー内のyii 2 phpコードスニペットの例(curlを使用) public function actioncreatetodo() { $url = "https //parseapi back4app com/classes/todo"; $data = \[ "title" => "buy groceries", "iscompleted" => false ]; $headers = \[ "x parse application id your application id", "x parse rest api key your rest api key", "content type application/json" ]; $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, json encode($data)); curl setopt($ch, curlopt httpheader, $headers); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); // handle $result as needed, e g , parse json or redirect } restを使用して同じデータをクエリする場合は、次のようになります curl x get \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ https //parseapi back4app com/classes/todo graphql apiを使用したデータの読み取りと書き込み parseのgraphqlインターフェースを使用してデータを作成および読み取ることもできます。たとえば、 todo を作成するには mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } yii 2では、 graphqlライブラリ https //packagist org/packages/webonyx/graphql php または単純なhttpリクエストを使用してback4appのgraphqlエンドポイントと対話できます https //parseapi back4app com/graphql ライブクエリの操作(オプション) リアルタイムの更新のために、back4appは ライブクエリ をサポートしており、クラスの変更にサブスクライブできます。yii 2での典型的な使用はあまり一般的ではないかもしれませんが、back4appの設定でライブクエリを有効にし、phpでwebsocket接続を処理することは可能です。これはより高度な内容なので、 parseライブクエリのドキュメント https //www back4app com/docs/javascript live queries/parse livequery overview を参照して、phpベースのwebアプリケーションでリアルタイム機能を実装する方法の詳細を確認してください。 ステップ3 – aclとclpを使用したセキュリティの適用 概要 back4appは アクセス制御リスト (acl) と クラスレベルの権限 (clp) を提供してデータを保護します。aclは特定のオブジェクトに適用され、clpは各クラスのグローバルな権限を定義します。 クラスレベルの権限の設定 back4appダッシュボードの データベース に移動し、クラス(例:「todo」)を選択します。 clpタブを開く 、そして読み取り/書き込み権限を設定します(例:「認証が必要」または「アクセス不可」)。 aclの設定 restまたはgraphqlを介してデータを作成または更新する際に、 acl フィールドを含めることで、個々のオブジェクトにaclを設定できます。例えば、restを使用する場合 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{ "title" "private todo", "acl" { "user object id here" { "read" true, "write" true }, " " { "read" false, "write" false } } }' \\ https //parseapi back4app com/classes/todo このオブジェクトは、指定されたobjectidを持つユーザーのみがアクセスできるようになります。 ステップ4 – クラウドコード関数の作成 クラウドコードの利点 back4appでクラウドコードを使用すると、自分のサーバーを管理することなく、カスタムサーバーサイドロジックを実行できます。 ビジネスロジック , データ検証 , または トリガー を作成して、オブジェクトの作成、更新、削除を行うことができます。 クラウドコード関数の例 以下は、テキストの長さを計算するシンプルなクラウドコード関数(javascriptで記述)です main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); デプロイメント cloud codeをデプロイするには、 back4app cli を使用するか、直接 cloud code > functions セクションでback4appダッシュボードにて行います back4app cli ダッシュボード コードを main js にコピー/ペーストし、 デプロイ をクリックします。 クラウド関数の呼び出し yii 2からシンプルなrest postリクエストを使用して関数を呼び出すことができます curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"text" "hello back4app"}' \\ https //parseapi back4app com/functions/calculatetextlength またはgraphqlを介して mutation { calculatetextlength(input { text "hello graphql" }) { result } } ステップ5 – 認証の設定 back4appにおけるユーザー認証 back4appは、 parse user クラスを安全な認証の基盤として使用します。restまたはgraphql呼び出しを通じてユーザーを作成および確認できます。 restを使用したユーザーの作成 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{ "username" "alice", "password" "secret123", "email" "alice\@example com" }' \\ https //parseapi back4app com/users ユーザーのログイン curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login ソーシャルログイン ソーシャルログイン(google、apple、facebookなど)のために、back4appでoauth設定を構成し、必要なトークンを処理するためにyii 2アプリケーションを設定します。back4appの ソーシャルログインドキュメント https //www back4app com/docs/platform/sign in with apple を参照して、プロバイダー固有のガイドラインを確認してください。 メール確認とパスワードリセット ユーザーのセキュリティを向上させるために、back4appダッシュボードのメール設定で メール確認 と パスワードリセット を有効にしてください。 back4app ダッシュボードの設定 メール認証を有効にする アプリ設定 > メール設定 の下で。 “from”アドレスとメールテンプレートを カスタマイズする。 新しいユーザーを作成して 確認メールが送信されることをテストする。 実装 あなたの yii 2 アプリケーションで、ユーザーを parse の パスワードリセットエンドポイント https //www back4app com/docs/users/password reset に誘導します。実際のメールを送信するなどのフローは、back4app インフラストラクチャによって処理されます。 ステップ 8 – クラウドジョブによるタスクのスケジューリング クラウドジョブの機能 back4app のクラウドジョブを使用すると、データのクリーンアップや通知の送信などの定期的なタスクをスケジュールできます。これらを cloud code ( main js ) で定義し、ダッシュボードでスケジュールします。 例 クリーンアップジョブ main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); ステップ 9 – ウェブフックの統合 定義 ウェブフックを使用すると、back4app アプリケーションがイベントが発生したときに外部サービスに自動化された http リクエストを送信できます。たとえば、新しい todo を作成する場合などです。 設定 back4app ダッシュボードで , more > webhooks に移動します。 webhook エンドポイントを追加します (例 https //your external service com/webhook )。 トリガーを設定します (例 “todo クラスに新しいレコード”)。 webhookを使用すると、 todo オブジェクトが作成または更新されるたびに、他のサービス(slack、stripe、またはカスタムapiなど)に通知を送信できます。 ステップ10 – back4app管理パネルの探索 どこで見つけるか back4app管理アプリは、コードを書くことなくデータを管理するためのポイントアンドクリックインターフェースです。次の手順で有効にできます: アプリダッシュボード > その他 > 管理アプリ 、その後、 管理アプリを有効にする 。 機能 管理ユーザーを作成した後、管理アプリ用の専用サブドメインが提供されます。これにより、承認されたチームメンバーは、back4appデータベースのcrud操作、ログのレビュー、または分析の表示のためのクリーンなインターフェースを利用できます。コードは必要ありません。 結論 このチュートリアルでは、 yii 2のバックエンドを構築する方法 をback4appを使用して発見しました。 クラウドベースのデータベースを構成し、aclとclpで堅牢なセキュリティを設定し、cloud jobsでバックグラウンドタスクをスケジュールし、webhookを通じて外部サービスを統合しました。また、ユーザー認証とファイルストレージを安全に管理する方法も見ました。 オープンソースのyiiフレームワークを使用してwebアプリケーションを構築し、back4appのスケーラブルなインフラストラクチャを組み合わせたことで、開発と成長のための強力な環境が整いました。 次のステップ 本番環境に移行する ために、データモデルを拡張し、追加のセキュリティ設定を適用し、パフォーマンスを最適化します。 外部apiを統合する (決済ゲートウェイ、メールプロバイダー)をcloud codeまたは直接webhookを通じて行います。 公式のback4appドキュメントを探る 高度なセキュリティ、ログ分析、パフォーマンス最適化などの深いトピックについて。 さらに学ぶ yii 2を使用して複雑なwebアプリケーションを構築する方法について、ロールベースのアクセス制御、キャッシング戦略、そして高度なデータベース関係を学びます。 この基盤をもとに、yii 2プロジェクトをさらに強化し、ビジネス特有のロジックに焦点を当て、ユーザーのために堅牢でスケーラブルな機能を提供できます。コーディングとモダンなwebアプリケーションの構築を楽しんでください。