クイックスターターズ

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

26min

はじめに

このチュートリアルでは、Symfonyのバックエンドを構築する方法を学びます。

Back4Appの強力な機能(データベース管理、Cloud Code、REST、GraphQL APIを含む)を使用して、Symfonyアプリケーションとスムーズに連携する安全でスケーラブル、効率的なバックエンドを作成する方法をお見せします。

ユーザー認証、ファイルストレージ、リアルタイム更新をLive Queriesを通じて処理する方法も発見できます(アーキテクチャに応じて)。

Back4Appの迅速なセットアップと直感的なプラットフォームを活用することで、サーバーやデータベースを手動で扱うよりも時間と労力を節約できます。

高度なセキュリティ、Cloud Jobsによるタスクのスケジューリング、Webhookの設定、信頼性の高いバックエンド開発に必要なその他の機能に関する実践的な経験を得ることができます。

このチュートリアルを完了すると、自信を持ってSymfonyバックエンドを本番環境に拡張またはカスタマイズし、外部APIを統合し、必要に応じて複雑なビジネスロジックを追加できます。

前提条件

  • Back4appアカウント 無料でサインアップ こちら.
  • 新しいBack4appプロジェクト Back4appの始め方.
  • Symfony特有のセットアップ ローカルに Symfony がインストールされていることを確認してください。PHPとComposerが準備されていることを確認してください。
  • Symfonyの基本知識 コントローラー、サービス、テンプレートに慣れていることが望ましいです。 Symfony公式ドキュメント.
  • Node.js(オプション、一部のビルドツール用) フロントエンドタスクにNodeベースのツールを使用する予定がある場合は、 Node.jsをインストールしてください。

Symfony環境とBack4Appプロジェクトが設定されていることを確認してから始めてください。これにより、手順をスムーズに進めることができます。

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

  1. Back4Appプロジェクトを作成する:
    • Back4Appアカウントにログインします。
    • ダッシュボードの「新しいアプリ」をクリックします。
    • 名前を付けます(例:「Symfony-Backend-Tutorial」)。
Document image


作成すると、Back4Appダッシュボードに表示されます。このプロジェクトはあなたのバックエンドの基盤です。

  1. RESTまたはGraphQLで接続する:
    • アプリの「アプリ設定」または「セキュリティとキー」で、アプリケーションIDREST APIキー(GraphQLを使用する予定がある場合はGraphQLエンドポイントも)を見つけます。
    • あなたのParse Server URL(例:https://parseapi.back4app.com)をメモします。
    • SymfonyにはネイティブのParse SDKがないため、SymfonyのHTTPクライアントやGuzzleのようなライブラリを使用して、Back4AppのRESTまたはGraphQL APIと通信します。
Document image


以下は、Symfony HttpClientを使用した例です。

PHP


このサービスは、Symfony内からBack4Appバックエンドにリクエストを送信するのに役立ちます。

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

データモデルの作成

Back4Appでは、データを保存するクラス(テーブル)を定義します。タスクを保持するための Todo クラスが必要だとしましょう:

  1. データベースに移動 あなたのBack4Appダッシュボードで。
  2. 新しいクラスを作成 “Todo” とし、次のようなフィールドを追加します。タイトル (String) と isCompleted (Boolean)。
新しいクラスを作成
新しいクラスを作成


または、Back4App AIエージェント にデータモデルを作成させます:

  1. AIエージェントを開く あなたのプロジェクトダッシュボードで。
  2. データモデルを説明する (例: “タイトルとisCompletedフィールドを持つTodoクラスを作成します。”)。
  3. スキーマを自動生成する
Document image


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

新しいTodoをSymfonyコントローラーから作成するには、次のようにします:

PHP


クエリには、GETリクエストを使用し、あなたの資格情報を含めます:

Bash


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

Symfonyで GraphQL を統合することもできます。 Todo を作成するための例のミューテーションは次のとおりです:

GraphQL


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

Symfonyアプリがリアルタイムデータを必要とする場合、 ライブクエリ をよりフロントエンドまたはリアルタイムマイクロサービスのコンテキストで組み込むことができます。 Back4Appの サーバー設定 でライブクエリを設定し、WebSocketクライアントを接続します。必要に応じて、Symfonyはこれらの更新に応答したり、別のリアルタイムレイヤーを介してブロードキャストしたりできます。

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

ACL(アクセス制御リスト)

ACLを使用すると、オブジェクトの読み取りまたは書き込みができるユーザーを制御できます。たとえば、REST APIを使用してデータを作成する際に、JSONに _ACL フィールドを追加することで、コード内でACLを適用できます。例えば:

JSON


CLP(クラスレベルの権限)

クラスレベルの権限 を使用すると、クラス全体に対して広範なアクセスルールを設定できます:

  1. Back4Appダッシュボードで データベースを開く
  2. クラスを選択する(例:「Todo」)。
  3. 権限タブに移動する そして、読み取り/書き込みアクセスを設定します。
Document image


詳細情報については、 アプリセキュリティガイドライン をご覧ください。

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

クラウドコードを使用すると、インフラストラクチャを管理することなく、安全なサーバーサイドJavaScriptを実行できます。SymfonyはPHPで動作しますが、特定のタスクを クラウドコード にオフロードして、Back4Appで高度なロジック、トリガー、および検証を行うことができます。

例: 保存前にTodoを検証する

JS


デプロイメント

  1. Back4App CLIを使用する またはダッシュボードを使用して main.js をデプロイします。
  2. クラウド関数を呼び出す SymfonyサービスからRESTまたはGraphQL経由で。
Document image


ステップ 5 – 認証の設定

Back4Appのユーザー管理は、 Parse User クラスに依存しています。Symfonyを使用すると、RESTまたはGraphQL呼び出しを介してユーザーのサインアップ、ログイン、およびパスワードリセットを処理できます。

サインアップ / ログイン via REST

Bash


プログラム的なユーザーフローが必要な場合は、Symfonyサービスを使用してこれらの呼び出しをラップしてください。

ソーシャルログイン

GoogleまたはAppleのサインインを統合する予定がある場合は、Back4Appのソーシャルログインドキュメントを参照してください。OAuthアプリを設定し、認証を完了するために特定のREST呼び出しを行います。

ステップ6 – ファイルストレージの処理

RESTによるファイルアップロード

Bash


アップロード後、ファイルURLが取得できます。そのリンクを任意のクラス(例:Todo)に保存して、そのファイルへの参照とすることができます。

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

メールの設定

  1. メール設定に移動 Back4Appで。
  2. メール確認 とパスワードリセットテンプレートを有効にします。
  3. 必要に応じて “From” と “Subject” の行をカスタマイズします。

これにより、すべてのサインアップに有効なメール確認が必要になります。

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

クラウドジョブの例

JS


この cleanupOldTodos ジョブを Back4App ダッシュボードで毎日実行するようにスケジュールし、データ管理を改善します。

ステップ 9 – Webhook の統合

Webhook は Back4App が外部サービスに HTTP リクエストを送信できるようにします。たとえば、新しい Todo が作成されるたびに Slack エンドポイントに ping を送信できます:

  1. More > WebHooks に移動 Back4App ダッシュボードで。
  2. Webhook を追加 外部エンドポイントを指定します。
  3. オブジェクト作成時に イベントをトリガーします Todo クラスで。
Webhook の追加
Webhook の追加


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

Back4App Admin App」を使用して、ユーザーフレンドリーなデータ管理インターフェースを利用します:

  1. Admin Appを有効にするApp Dashboard > More > Admin Appから行います。
  2. 安全なユーザー名とパスワードで管理ユーザーを作成します。
  3. 簡単にアクセスできるようにカスタムサブドメインを割り当てます。
Admin Appを有効にする
Admin Appを有効にする


この機能は、非技術的なチームメンバーがコードに深入りすることなく、レコードを表示および管理するのに役立ちます。

結論

あなたは、「Symfonyのバックエンドを構築する方法」をBack4Appを使用して学びました。これには以下が含まれます:

  • 新しいプロジェクトを作成する をBack4Appを基盤として。
  • データベースを構成する クラス、フィールド、関係を使って。
  • データを保護する ACLとCLPを使って。
  • Cloud Codeを活用する サーバーサイドのロジックのために。
  • ユーザー認証を管理する (サインアップ、ログイン、パスワードリセット)。
  • ファイルストレージを扱う REST APIを使って。
  • Cloud Jobsを設定する 定期的なタスクのために。
  • Webhookを統合する 外部サービスを接続するために。
  • Back4App管理パネルをナビゲートする 簡単なデータ管理のために。

これらのステップは、Symfonyアプリケーションを構築し、スケールするための強力なフレームワークを提供します。このアーキテクチャを拡張して、より複雑なロジックを処理したり、決済ゲートウェイを統合したり、高度なセキュリティ機能を追加したりしてください。Back4Appを使用することで、ホスティングやインフラストラクチャにかかる時間と労力を節約できるため、最高のユーザー体験を提供することに集中できます。

次のステップ

  • 生産準備が整ったSymfonyアプリを構築する より高いトラフィックと高度なパフォーマンスニーズのためにBack4Appバックエンドをカスタマイズすることによって。
  • 高度な機能を統合する ロールベースのアクセス、分析、または決済のためのサードパーティAPIのような。
  • 公式のBack4Appドキュメントを探る セキュリティ、ログ、監視に関する深い洞察のために。
  • さらに多くのチュートリアルをチェックする このバックエンドをリアルタイムサービスと組み合わせたり、ライブ更新を伴う動的ウェブサイトを作成したりするために。

これらの戦略に従うことで、あなたのSymfonyプロジェクトは強力で効率的なバックエンドを得ることができます。Back4Appを活用してメンテナンスを容易にし、アプリケーションの機能を迅速に進化させましょう。次のSymfonyの傑作を構築する際の幸運を祈ります!