Symfonyのバックエンドを構築する方法は?
このチュートリアルでは、Symfonyのバックエンドを構築する方法を学びます。
Back4Appの強力な機能(データベース管理、Cloud Code、REST、GraphQL APIを含む)を使用して、Symfonyアプリケーションとスムーズに連携する安全でスケーラブル、効率的なバックエンドを作成する方法をお見せします。
ユーザー認証、ファイルストレージ、リアルタイム更新をLive Queriesを通じて処理する方法も発見できます(アーキテクチャに応じて)。
Back4Appの迅速なセットアップと直感的なプラットフォームを活用することで、サーバーやデータベースを手動で扱うよりも時間と労力を節約できます。
高度なセキュリティ、Cloud Jobsによるタスクのスケジューリング、Webhookの設定、信頼性の高いバックエンド開発に必要なその他の機能に関する実践的な経験を得ることができます。
このチュートリアルを完了すると、自信を持ってSymfonyバックエンドを本番環境に拡張またはカスタマイズし、外部APIを統合し、必要に応じて複雑なビジネスロジックを追加できます。
Symfony環境とBack4Appプロジェクトが設定されていることを確認してから始めてください。これにより、手順をスムーズに進めることができます。
- Back4Appプロジェクトを作成する:
- Back4Appアカウントにログインします。
- ダッシュボードの「新しいアプリ」をクリックします。
- 名前を付けます(例:「Symfony-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
作成すると、Back4Appダッシュボードに表示されます。このプロジェクトはあなたのバックエンドの基盤です。
- RESTまたはGraphQLで接続する:
- アプリの「アプリ設定」または「セキュリティとキー」で、アプリケーションIDとREST APIキー(GraphQLを使用する予定がある場合はGraphQLエンドポイントも)を見つけます。
- あなたのParse Server URL(例:https://parseapi.back4app.com)をメモします。
- SymfonyにはネイティブのParse SDKがないため、SymfonyのHTTPクライアントやGuzzleのようなライブラリを使用して、Back4AppのRESTまたはGraphQL APIと通信します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
以下は、Symfony HttpClientを使用した例です。
このサービスは、Symfony内からBack4Appバックエンドにリクエストを送信するのに役立ちます。
Back4Appでは、データを保存するクラス(テーブル)を定義します。タスクを保持するための Todo クラスが必要だとしましょう:
- データベースに移動 あなたのBack4Appダッシュボードで。
- 新しいクラスを作成 “Todo” とし、次のようなフィールドを追加します。タイトル (String) と isCompleted (Boolean)。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
または、Back4App AIエージェント にデータモデルを作成させます:
- AIエージェントを開く あなたのプロジェクトダッシュボードで。
- データモデルを説明する (例: “タイトルとisCompletedフィールドを持つTodoクラスを作成します。”)。
- スキーマを自動生成する。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
新しいTodoをSymfonyコントローラーから作成するには、次のようにします:
クエリには、GETリクエストを使用し、あなたの資格情報を含めます:
Symfonyで GraphQL を統合することもできます。 Todo を作成するための例のミューテーションは次のとおりです:
Symfonyアプリがリアルタイムデータを必要とする場合、 ライブクエリ をよりフロントエンドまたはリアルタイムマイクロサービスのコンテキストで組み込むことができます。 Back4Appの サーバー設定 でライブクエリを設定し、WebSocketクライアントを接続します。必要に応じて、Symfonyはこれらの更新に応答したり、別のリアルタイムレイヤーを介してブロードキャストしたりできます。
ACLを使用すると、オブジェクトの読み取りまたは書き込みができるユーザーを制御できます。たとえば、REST APIを使用してデータを作成する際に、JSONに _ACL フィールドを追加することで、コード内でACLを適用できます。例えば:
クラスレベルの権限 を使用すると、クラス全体に対して広範なアクセスルールを設定できます:
- Back4Appダッシュボードで データベースを開く。
- クラスを選択する(例:「Todo」)。
- 権限タブに移動する そして、読み取り/書き込みアクセスを設定します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
詳細情報については、 アプリセキュリティガイドライン をご覧ください。
クラウドコードを使用すると、インフラストラクチャを管理することなく、安全なサーバーサイドJavaScriptを実行できます。SymfonyはPHPで動作しますが、特定のタスクを クラウドコード にオフロードして、Back4Appで高度なロジック、トリガー、および検証を行うことができます。
- Back4App CLIを使用する またはダッシュボードを使用して main.js をデプロイします。
- クラウド関数を呼び出す SymfonyサービスからRESTまたはGraphQL経由で。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Back4Appのユーザー管理は、 Parse User クラスに依存しています。Symfonyを使用すると、RESTまたはGraphQL呼び出しを介してユーザーのサインアップ、ログイン、およびパスワードリセットを処理できます。
プログラム的なユーザーフローが必要な場合は、Symfonyサービスを使用してこれらの呼び出しをラップしてください。
GoogleまたはAppleのサインインを統合する予定がある場合は、Back4Appのソーシャルログインドキュメントを参照してください。OAuthアプリを設定し、認証を完了するために特定のREST呼び出しを行います。
アップロード後、ファイルURLが取得できます。そのリンクを任意のクラス(例:Todo)に保存して、そのファイルへの参照とすることができます。
- メール設定に移動 Back4Appで。
- メール確認 とパスワードリセットテンプレートを有効にします。
- 必要に応じて “From” と “Subject” の行をカスタマイズします。
これにより、すべてのサインアップに有効なメール確認が必要になります。
この cleanupOldTodos ジョブを Back4App ダッシュボードで毎日実行するようにスケジュールし、データ管理を改善します。
Webhook は Back4App が外部サービスに HTTP リクエストを送信できるようにします。たとえば、新しい Todo が作成されるたびに Slack エンドポイントに ping を送信できます:
- More > WebHooks に移動 Back4App ダッシュボードで。
- Webhook を追加 外部エンドポイントを指定します。
- オブジェクト作成時に イベントをトリガーします Todo クラスで。
![Webhook の追加 Webhook の追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
「Back4App Admin App」を使用して、ユーザーフレンドリーなデータ管理インターフェースを利用します:
- Admin Appを有効にするはApp Dashboard > More > Admin Appから行います。
- 安全なユーザー名とパスワードで管理ユーザーを作成します。
- 簡単にアクセスできるようにカスタムサブドメインを割り当てます。
![Admin Appを有効にする Admin Appを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
この機能は、非技術的なチームメンバーがコードに深入りすることなく、レコードを表示および管理するのに役立ちます。
あなたは、「Symfonyのバックエンドを構築する方法」をBack4Appを使用して学びました。これには以下が含まれます:
- 新しいプロジェクトを作成する をBack4Appを基盤として。
- データベースを構成する クラス、フィールド、関係を使って。
- データを保護する ACLとCLPを使って。
- Cloud Codeを活用する サーバーサイドのロジックのために。
- ユーザー認証を管理する (サインアップ、ログイン、パスワードリセット)。
- ファイルストレージを扱う REST APIを使って。
- Cloud Jobsを設定する 定期的なタスクのために。
- Webhookを統合する 外部サービスを接続するために。
- Back4App管理パネルをナビゲートする 簡単なデータ管理のために。
これらのステップは、Symfonyアプリケーションを構築し、スケールするための強力なフレームワークを提供します。このアーキテクチャを拡張して、より複雑なロジックを処理したり、決済ゲートウェイを統合したり、高度なセキュリティ機能を追加したりしてください。Back4Appを使用することで、ホスティングやインフラストラクチャにかかる時間と労力を節約できるため、最高のユーザー体験を提供することに集中できます。
- 生産準備が整ったSymfonyアプリを構築する より高いトラフィックと高度なパフォーマンスニーズのためにBack4Appバックエンドをカスタマイズすることによって。
- 高度な機能を統合する ロールベースのアクセス、分析、または決済のためのサードパーティAPIのような。
- 公式のBack4Appドキュメントを探る セキュリティ、ログ、監視に関する深い洞察のために。
- さらに多くのチュートリアルをチェックする このバックエンドをリアルタイムサービスと組み合わせたり、ライブ更新を伴う動的ウェブサイトを作成したりするために。
これらの戦略に従うことで、あなたのSymfonyプロジェクトは強力で効率的なバックエンドを得ることができます。Back4Appを活用してメンテナンスを容易にし、アプリケーションの機能を迅速に進化させましょう。次のSymfonyの傑作を構築する際の幸運を祈ります!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)