Quickstarters
Feature Overview
Come costruire un backend per Symfony?
29 min
introduzione in questo tutorial, imparerai come costruire un backend per symfony utilizzando back4app ti mostreremo come utilizzare le robuste funzionalità di back4app—compresa la gestione del database, cloud code, rest e graphql api—per creare un backend sicuro, scalabile ed efficiente che funzioni senza problemi con la tua applicazione symfony scoprirai anche come gestire l'autenticazione degli utenti, l'archiviazione dei file e gli aggiornamenti in tempo reale tramite live queries (se applicabile per la tua architettura) sfruttando la rapida configurazione e la piattaforma intuitiva di back4app, risparmierai tempo e fatica rispetto alla gestione manuale di server e database acquisirai esperienza pratica in sicurezza avanzata, pianificazione di attività con cloud jobs, configurazione di webhook e altre funzionalità essenziali per uno sviluppo backend affidabile dopo aver completato questo tutorial, puoi espandere o personalizzare con sicurezza il tuo backend symfony per la produzione, integrare api esterne e aggiungere logica aziendale complessa secondo necessità requisiti un account back4app registrati gratuitamente qui https //www back4app com un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app configurazione specifica di symfony assicurati di avere symfony https //symfony com/download installato localmente conferma di avere php e composer pronti conoscenza di base di symfony familiarità con controller, servizi e templating è utile documentazione ufficiale di symfony https //symfony com/doc/current/index html node js (opzionale, per alcuni strumenti di build) se prevedi di utilizzare strumenti basati su node per attività front end, installa node js https //nodejs org/en/download/ assicurati che il tuo ambiente symfony e il progetto back4app siano impostati prima di iniziare questo ti aiuterà a seguire i passaggi senza problemi passo 1 – creare un nuovo progetto su back4app e connettersi crea un progetto back4app accedi al tuo account back4app clicca su “nuova app” nel dashboard dagli un nome (ad esempio, “symfony backend tutorial”) una volta creato, appare nel tuo dashboard di back4app questo progetto è la tua base backend collegati con rest o graphql nelle “impostazioni app” o “sicurezza e chiavi” della tua app, trova il tuo id applicazione e chiave api rest (e l'endpoint graphql se prevedi di utilizzare graphql) annota il tuo url del server parse (ad esempio, https //parseapi back4app com ) poiché symfony non ha un sdk parse nativo, dovrai fare affidamento sul client http di symfony o su una libreria come guzzle per comunicare con le api rest o graphql di back4app di seguito è riportato un esempio che utilizza il 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(); } } questo servizio ti aiuterà a fare richieste al tuo backend di back4app da dentro symfony passo 2 – configurazione del database creazione di un modello di dati su back4app, definirai classi (tabelle) che memorizzano i tuoi dati diciamo che vuoi una todo classe per contenere i compiti naviga al database nel tuo dashboard di back4app crea una nuova classe “todo” e aggiungi campi come title (string) e iscompleted (boolean) in alternativa, lascia che il back4app ai agent crei il tuo modello di dati apri l'ai agent nel tuo dashboard di progetto descrivi il tuo modello di dati (ad es , “crea una classe todo con i campi title e iscompleted ”) genera automaticamente lo schema lettura e scrittura dei dati usando rest per creare un nuovo todo da un controller symfony, puoi fare 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); } } per query , usa una richiesta get con le tue credenziali 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 lettura e scrittura dei dati usando graphql puoi anche integrare graphql in symfony utilizzando una libreria client graphql un esempio di mutazione per creare un todo è mutation { createtodo(input { fields { title "clean the kitchen" iscompleted false } }) { todo { objectid title iscompleted } } } lavorare con le query live (opzionale) se la tua app symfony ha bisogno di dati in tempo reale, puoi incorporare live queries in un contesto più front end o microservizio in tempo reale configura le live queries nelle impostazioni del server su back4app, quindi collega un client websocket symfony può rispondere a o trasmettere questi aggiornamenti tramite un layer separato in tempo reale se necessario passo 3 – applicare la sicurezza con acl e clp acl (liste di controllo degli accessi) le acl ti permettono di controllare chi può leggere o scrivere un oggetto ad esempio, puoi applicare un acl nel codice quando crei dati con l'api rest aggiungendo acl nei tuoi json ad esempio { "title" "private task", "iscompleted" false, " acl" { "userobjectidhere" { "read" true, "write" true } } } clp (permessi a livello di classe) i permessi a livello di classe ti permettono di impostare regole di accesso ampie per un'intera classe apri il database nel dashboard di back4app seleziona la tua classe (ad esempio, “todo”) vai alla scheda permessi e configura l'accesso in lettura/scrittura per ulteriori informazioni, visita le linee guida sulla sicurezza delle app https //www back4app com/docs/security/parse security passo 4 – scrivere funzioni di cloud code il cloud code ti consente di eseguire javascript sicuro lato server senza gestire l'infrastruttura mentre symfony è in php, puoi comunque delegare determinate attività a cloud code su back4app per logica avanzata, trigger e validazioni esempio convalidare un todo prima del salvataggio // main js parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); distribuzione usa il back4app cli o il dashboard per distribuire main js invoca le tue funzioni cloud tramite rest o graphql dai tuoi servizi symfony passo 5 – configurare l'autenticazione la gestione degli utenti in back4app si basa sulla classe parse user con symfony, puoi gestire le registrazioni degli utenti, i login e il ripristino delle password tramite chiamate rest o graphql registrati / accedi tramite 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 utilizza un servizio symfony per incapsulare queste chiamate se hai bisogno di flussi utente programmati accesso sociale se prevedi di integrare l'accesso tramite google o apple, fai riferimento a documentazione di accesso sociale di back4app https //www back4app com/docs/platform/sign in with apple configurerai le tue app oauth e farai chiamate rest specifiche per completare l'autenticazione passo 6 – gestione dello storage dei file caricamento file con 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 dopo il caricamento, riceverai un url del file puoi memorizzare quel link in qualsiasi classe (ad es , todo ) come riferimento a quel file passo 7 – verifica email e reimpostazione password configurazione email vai alle impostazioni email in back4app abilita la verifica dell'email e i modelli di reset della password personalizza le righe “da” e “oggetto” come necessario questo assicura che tutte le registrazioni richiedano conferme email valide passo 8 – pianificazione dei compiti con cloud jobs esempio di 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 `; }); pianifica questo cleanupoldtodos lavoro nel tuo dashboard di back4app per eseguirlo quotidianamente, migliorando la gestione dei dati passo 9 – integrazione dei webhook i webhook consentono a back4app di inviare richieste http a servizi esterni ad esempio, puoi inviare un ping a un endpoint slack ogni volta che viene creato un nuovo todo vai su altro > webhooks nel tuo dashboard di back4app aggiungi un webhook specificando il tuo endpoint esterno attiva l'evento alla creazione dell'oggetto nella classe todo passo 10 – esplorare il pannello di amministrazione di back4app usa il back4app admin app per un'interfaccia di gestione dei dati facile da usare abilita l'admin app da app dashboard > altro > admin app crea un utente admin con un nome utente e una password sicuri assegna un sottodominio personalizzato per un accesso facile questa funzione aiuta i membri del team non tecnici a visualizzare e gestire i record senza dover entrare nel codice conclusione hai imparato come costruire un backend per symfony utilizzando back4app questo includeva creare un nuovo progetto su back4app come base configurare il database con classi, campi e relazioni proteggere i dati con acl e clp sfruttare il cloud code per la logica lato server gestire l'autenticazione degli utenti (registrazione, accesso, reset della password) gestire lo storage dei file con l'api rest impostare i cloud jobs per compiti periodici integrare i webhook per connettere servizi esterni navigare nel pannello di amministrazione di back4app per una gestione dei dati semplice questi passaggi ti offrono una solida struttura per costruire e scalare la tua applicazione symfony espandi questa architettura per gestire logiche più complesse, integrare gateway di pagamento o aggiungere funzionalità di sicurezza avanzate con back4app, risparmi tempo e sforzi su hosting e infrastruttura—così puoi concentrarti nel fornire la migliore esperienza utente possibile prossimi passi costruire un'app symfony pronta per la produzione personalizzando il tuo backend di back4app per un traffico maggiore e esigenze di prestazioni avanzate integrare funzionalità avanzate come accesso basato su ruoli, analisi o api di terze parti per i pagamenti esplora la documentazione ufficiale di back4app per approfondimenti su sicurezza, registri e monitoraggio dai un'occhiata a più tutorial per combinare questo backend con servizi in tempo reale o per creare siti web dinamici con aggiornamenti live seguendo queste strategie, il tuo progetto symfony guadagna un backend potente ed efficiente abbraccia back4app per semplificare la manutenzione e far evolvere rapidamente le capacità della tua applicazione buona fortuna nella costruzione del tuo prossimo capolavoro symfony!