Quickstarters
Feature Overview
Comment construire un backend pour Symfony ?
29 min
introduction dans ce tutoriel, vous apprendrez comment construire un backend pour symfony en utilisant back4app nous vous montrerons comment utiliser les fonctionnalités robustes de back4app—y compris la gestion de base de données, le cloud code, les api rest et graphql—pour créer un backend sécurisé, évolutif et efficace qui fonctionne parfaitement avec votre application symfony vous découvrirez également comment gérer l'authentification des utilisateurs, le stockage de fichiers et les mises à jour en temps réel via des requêtes en direct (si applicable pour votre architecture) en tirant parti de la configuration rapide et de la plateforme intuitive de back4app, vous économiserez du temps et des efforts par rapport à la gestion manuelle des serveurs et des bases de données vous acquerrez une expérience pratique en matière de sécurité avancée, de planification de tâches avec cloud jobs, de configuration de webhooks et d'autres fonctionnalités essentielles pour un développement backend fiable après avoir terminé ce tutoriel, vous pouvez étendre ou personnaliser en toute confiance votre backend symfony pour la production, intégrer des api externes et ajouter une logique métier complexe si nécessaire prérequis un compte back4app inscrivez vous gratuitement ici https //www back4app com un nouveau projet back4app commencer avec back4app https //www back4app com/docs/get started/new parse app configuration spécifique à symfony assurez vous d'avoir symfony https //symfony com/download installé localement confirmez que vous avez php et composer prêts connaissances de base en symfony une familiarité avec les contrôleurs, les services et le templating est bénéfique documentation officielle de symfony https //symfony com/doc/current/index html node js (optionnel, pour certains outils de construction) si vous prévoyez d'utiliser des outils basés sur node pour des tâches front end, installez node js https //nodejs org/en/download/ assurez vous que votre environnement symfony et votre projet back4app sont configurés avant de commencer cela vous aidera à suivre les étapes sans problème étape 1 – création d'un nouveau projet sur back4app et connexion créer un projet back4app connectez vous à votre compte back4app cliquez sur “nouvelle application” dans le tableau de bord nommez la (par exemple, “symfony backend tutorial”) une fois créé, il apparaît dans votre tableau de bord back4app ce projet est votre fondation backend connectez vous avec rest ou graphql dans les “paramètres de l’application” ou “sécurité & clés” de votre application, trouvez votre id d'application et clé api rest (et le point de terminaison graphql si vous prévoyez d'utiliser graphql) notez votre url du serveur parse (par exemple, https //parseapi back4app com ) puisque symfony n'a pas de sdk parse natif, vous devrez vous fier au client http de symfony ou à une bibliothèque comme guzzle pour communiquer avec les api rest ou graphql de back4app voici un exemple utilisant le symfony httpclient https //symfony com/doc/current/http client html // src/service/back4appclient php namespace app\service; use symfony\component\httpclient\httpclient; class back4appclient { private $appid; private $restkey; private $baseurl; public function construct(string $appid, string $restkey, string $baseurl) { $this >appid = $appid; $this >restkey = $restkey; $this >baseurl = $baseurl; } public function createobject(string $classname, array $data) { $client = httpclient create(); $response = $client >request('post', $this >baseurl '/classes/' $classname, \[ 'headers' => \[ 'x parse application id' => $this >appid, 'x parse rest api key' => $this >restkey, 'content type' => 'application/json' ], 'json' => $data, ]); return $response >toarray(); } } ce service vous aidera à faire des requêtes à votre backend back4app depuis symfony étape 2 – configuration de la base de données création d'un modèle de données sur back4app, vous définirez des classes (tables) qui stockent vos données disons que vous voulez une todo classe pour contenir des tâches naviguez vers la base de données dans votre tableau de bord back4app créez une nouvelle classe “todo” et ajoutez des champs comme title (string) et iscompleted (boolean) alternativement, laissez le back4app ai agent créer votre modèle de données ouvrez l'ai agent dans le tableau de bord de votre projet décrivez votre modèle de données (par exemple, “créez une classe todo avec des champs title et iscompleted ”) générez le schéma automatiquement lecture et écriture de données en utilisant rest pour créer un nouveau todo à partir d'un contrôleur symfony, vous pouvez faire use app\service\back4appclient; use symfony\bundle\frameworkbundle\controller\abstractcontroller; use symfony\component\routing\annotation\route; class todocontroller extends abstractcontroller { \#\[route('/todo/new', name 'new todo')] public function new(back4appclient $client) { $data = \[ 'title' => 'buy groceries', 'iscompleted' => false ]; $result = $client >createobject('todo', $data); return $this >json($result); } } pour les requêtes , utilisez une requête get avec vos identifiants 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 lecture et écriture de données en utilisant graphql vous pouvez également intégrer graphql dans symfony en utilisant une bibliothèque cliente graphql un exemple de mutation pour créer un todo est mutation { createtodo(input { fields { title "clean the kitchen" iscompleted false } }) { todo { objectid title iscompleted } } } travailler avec des requêtes en direct (optionnel) si votre application symfony a besoin de données en temps réel, vous pourriez incorporer live queries dans un contexte plus front end ou microservice en temps réel configurez les requêtes en direct dans les paramètres du serveur sur back4app, puis connectez un client websocket symfony peut répondre à ces mises à jour ou les diffuser via une couche en temps réel séparée si nécessaire étape 3 – appliquer la sécurité avec les acl et les clp acl (listes de contrôle d'accès) les acl vous permettent de contrôler qui peut lire ou écrire un objet par exemple, vous pouvez appliquer une acl dans le code lors de la création de données avec l'api rest en ajoutant des champs acl dans votre json par exemple { "title" "private task", "iscompleted" false, " acl" { "userobjectidhere" { "read" true, "write" true } } } clp (permissions au niveau de la classe) les permissions au niveau de la classe vous permettent de définir des règles d'accès larges pour une classe entière ouvrir la base de données dans le tableau de bord back4app sélectionnez votre classe (par exemple, “todo”) allez à l'onglet permissions et configurez l'accès en lecture/écriture pour plus d'informations, visitez les directives de sécurité de l'application https //www back4app com/docs/security/parse security étape 4 – écriture de fonctions cloud code le cloud code vous permet d'exécuter du javascript côté serveur de manière sécurisée sans gérer l'infrastructure bien que symfony soit en php, vous pouvez toujours déléguer certaines tâches à cloud code sur back4app pour une logique avancée, des déclencheurs et des validations exemple valider un todo avant de sauvegarder // main js parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); déploiement utilisez le back4app cli ou le tableau de bord pour déployer main js invoquez vos fonctions cloud via rest ou graphql depuis vos services symfony étape 5 – configuration de l'authentification la gestion des utilisateurs dans back4app repose sur la classe parse user avec symfony, vous pouvez gérer les inscriptions des utilisateurs, les connexions et les réinitialisations de mot de passe via des appels rest ou graphql inscription / connexion via rest \# sign up 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" "alex", "password" "symfony123", "email" "alex\@example com"}' \\ https //parseapi back4app com/users \# log in curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ \ data urlencode 'username=alex' \\ \ data urlencode 'password=symfony123' \\ https //parseapi back4app com/login utilisez un service symfony pour encapsuler ces appels si vous avez besoin de flux utilisateurs programmatiques connexion sociale si vous prévoyez d'intégrer la connexion google ou apple, référez vous à la documentation de connexion sociale de back4app https //www back4app com/docs/platform/sign in with apple vous configurerez vos applications oauth et effectuerez des appels rest spécifiques pour compléter l'authentification étape 6 – gestion du stockage de fichiers téléchargement de fichiers avec 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 image/png" \\ \ data binary '@localimage png' \\ https //parseapi back4app com/files/localimage png après le téléchargement, vous obtiendrez une url de fichier vous pouvez stocker ce lien dans n'importe quelle classe (par exemple, todo ) comme référence à ce fichier étape 7 – vérification par e mail et réinitialisation du mot de passe configuration de l'e mail allez aux paramètres de l'email dans back4app activez la vérification par email et les modèles de réinitialisation de mot de passe personnalisez les lignes “de” et “objet” selon vos besoins cela garantit que toutes les inscriptions nécessitent des confirmations d'email valides étape 8 – planification des tâches avec les cloud jobs exemple de cloud job // main js parse cloud job('cleanupoldtodos', async () => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; query lessthan('createdat', new date(now thirty days)); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); planifiez ce cleanupoldtodos job dans votre tableau de bord back4app pour qu'il s'exécute quotidiennement, améliorant ainsi votre gestion des données étape 9 – intégration des webhooks les webhooks permettent à back4app d'envoyer des requêtes http à des services externes par exemple, vous pouvez envoyer un ping à un point de terminaison slack chaque fois qu'un nouveau todo est créé allez à plus > webhooks dans votre tableau de bord back4app ajoutez un webhook en spécifiant votre point de terminaison externe déclenchez l'événement lors de la création d'objet dans la classe todo étape 10 – exploration du panneau d'administration back4app utilisez le back4app admin app pour une interface de gestion des données conviviale activer l'admin app depuis app dashboard > plus > admin app créer un utilisateur admin avec un nom d'utilisateur et un mot de passe sécurisés attribuer un sous domaine personnalisé pour un accès facile cette fonctionnalité aide les membres de l'équipe non techniques à visualiser et gérer les enregistrements sans plonger dans le code conclusion vous avez appris comment construire un backend pour symfony en utilisant back4app cela incluait créer un nouveau projet sur back4app comme fondation configurer la base de données avec des classes, des champs et des relations sécuriser les données avec des acl et des clp exploiter le cloud code pour la logique côté serveur gérer l'authentification des utilisateurs (inscription, connexion, réinitialisation de mot de passe) gérer le stockage de fichiers avec l'api rest configurer des cloud jobs pour des tâches périodiques intégrer des webhooks pour connecter des services externes naviguer dans le panneau d'administration back4app pour une gestion facile des données ces étapes vous donnent un cadre solide pour construire et faire évoluer votre application symfony développez cette architecture pour gérer une logique plus complexe, intégrer des passerelles de paiement ou ajouter des fonctionnalités de sécurité avancées avec back4app, vous gagnez du temps et des efforts sur l'hébergement et l'infrastructure—vous pouvez donc vous concentrer sur la fourniture de la meilleure expérience utilisateur possible prochaines étapes construire une application symfony prête pour la production en personnalisant votre backend back4app pour un trafic plus élevé et des besoins de performance avancés intégrer des fonctionnalités avancées comme l'accès basé sur les rôles, l'analyse ou les api tierces pour les paiements explorer la documentation officielle de back4app pour des informations plus approfondies sur la sécurité, les journaux et la surveillance consulter d'autres tutoriels pour combiner ce backend avec des services en temps réel ou créer des sites web dynamiques avec des mises à jour en direct en suivant ces stratégies, votre projet symfony bénéficie d'un backend puissant et efficace adoptez back4app pour faciliter la maintenance et faire évoluer rapidement les capacités de votre application bonne chance pour la création de votre prochaine œuvre maîtresse symfony!