Quickstarters
Feature Overview
Come costruire un backend per Yii 2?
41 min
introduzione in questo tutorial, imparerai come costruire un backend per yii 2 utilizzando back4app yii 2 è un popolare framework php open source che ti aiuta a creare applicazioni web sicure ed efficienti integrando il framework yii con back4app, puoi sfruttare potenti funzionalità come la gestione del database, funzioni cloud, api rest e graphql, autenticazione degli utenti e query in tempo reale – il tutto mentre acceleri il tuo processo di sviluppo backend vedrai come sfruttare l'ambiente di back4app per ridurre la configurazione manuale del server, permettendoti di concentrarti sulla scrittura del tuo codice yii 2 seguendo questi passaggi, acquisirai esperienza pratica con funzionalità essenziali, inclusi controlli di sicurezza robusti (acl, clp), pianificazione di attività ricorrenti e configurazione di integrazioni esterne tramite webhook alla fine di questo tutorial, avrai una solida struttura backend per il tuo progetto yii 2, pronta per essere scalata in produzione o migliorata con logica aziendale personalizzata sarai anche ben preparato per integrare api di terze parti o costruire nuove funzionalità nelle tue applicazioni web requisiti per completare questo tutorial, avrai bisogno di un account back4app e un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app se non hai un account, registrati gratuitamente e segui la guida collegata per preparare il tuo progetto un ambiente di sviluppo locale yii 2 puoi scaricare yii 2 utilizzando composer https //getcomposer org/ e seguire il guida ufficiale di yii 2 https //www yiiframework com/doc/guide/2 0/en per la configurazione php (versione 7 4 o superiore) installato avrai bisogno di un ambiente php compatibile per eseguire yii 2 e gestire i pacchetti composer familiarità con php e concetti di base di yii 2 se sei nuovo nel framework yii, dai un'occhiata alla documentazione ufficiale di yii 2 https //www yiiframework com/doc/guide/2 0/en assicurati di avere tutti questi requisiti in atto prima di iniziare avere il tuo progetto back4app configurato e il tuo ambiente locale yii 2 pronto ti permetterà di seguire più facilmente passo 1 – creare un nuovo progetto su back4app e connettersi crea un nuovo progetto il primo passo per costruire un backend per yii 2 è creare un nuovo progetto back4app se non lo hai già fatto, segui questi passaggi accedi al tuo account back4app clicca sul pulsante “nuova app” nel tuo dashboard di back4app dai un nome alla tua app (ad esempio, “yii2 backend tutorial”) una volta creato il progetto, lo vedrai nel tuo dashboard di back4app questo serve come base per tutte le configurazioni del backend che esploreremo in questo tutorial collegamento tramite le api di parse back4app utilizza la piattaforma parse sotto il cofano sebbene esista il sdk php di parse, puoi anche integrare la tua applicazione yii 2 con back4app utilizzando le api rest o graphql di parse questo approccio è flessibile, permettendoti di scrivere codice che invia richieste http o graphql a back4app dai tuoi controller o modelli yii recupera le tue chiavi parse nel tuo dashboard di back4app, vai alle “impostazioni app” o “sicurezza e chiavi” trova il tuo id applicazione , chiave api rest , e il url del server parse (di solito https //parseapi back4app com ) tieni queste credenziali a portata di mano ne avrai bisogno quando farai richieste dalla tua applicazione yii 2 a back4app passo 2 – configurazione del database il tuo progetto back4app viene fornito con un database basato su cloud che è gestito automaticamente dal parse server puoi creare un modello di dati e memorizzare oggetti in esso utilizzando rest, graphql o l'agente ai di back4app creazione di un modello di dati apri la sezione “database” nel tuo dashboard di back4app crea una nuova classe (ad esempio, “todo”) e aggiungi colonne come title (string) e iscompleted (boolean) puoi anche lasciare che parse crei automaticamente queste colonne la prima volta che il tuo codice yii invia dati inoltre, l' agente ai di back4app può aiutarti a configurare lo schema apri l'agente ai dal tuo app dashboard o dal menu descrivi il tuo modello di dati (ad esempio, “crea uno schema per un'app todo con una todo classe”) consenti all'agente ai di generare lo schema lettura e scrittura dei dati utilizzando l'api rest di seguito è riportato un esempio di salvataggio di un todo oggetto utilizzando l'api rest potresti implementarlo in un'azione del controller yii 2 utilizzando curl o file get contents() di php per inviare dati 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 esempio di frammento di codice php yii 2 (utilizzando curl) in un controller 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 } interrogare gli stessi dati con rest potrebbe apparire così 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 di dati utilizzando l'api graphql puoi anche creare e leggere dati utilizzando l'interfaccia graphql di parse ad esempio, per creare un todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } in yii 2, puoi utilizzare librerie graphql https //packagist org/packages/webonyx/graphql php o semplici richieste http per interagire con l'endpoint graphql di back4app https //parseapi back4app com/graphql lavorare con le query live (opzionale) per aggiornamenti in tempo reale, back4app supporta live queries , che ti permettono di iscriverti ai cambiamenti su una classe anche se l'uso tipico in yii 2 potrebbe essere meno comune, puoi comunque abilitare le live queries nelle impostazioni di back4app e gestire le connessioni websocket in php questo è più avanzato, quindi fai riferimento alla documentazione delle live queries di parse https //www back4app com/docs/javascript live queries/parse livequery overview per dettagli su come implementare funzionalità in tempo reale nelle tue applicazioni web basate su php passo 3 – applicare la sicurezza con acl e clp panoramica breve back4app offre liste di controllo degli accessi (acl) e permessi a livello di classe (clp) per proteggere i tuoi dati le acl si applicano a oggetti specifici, mentre i clp definiscono permessi globali per ogni classe impostazione dei permessi a livello di classe vai a database nel tuo dashboard di back4app e seleziona la classe (ad esempio, “todo”) apri la scheda clp , e configura i permessi di lettura/scrittura (ad esempio, “richiede autenticazione” o “nessun accesso”) configurazione delle acl puoi impostare le acl per oggetti individuali includendo un acl campo quando crei o aggiorni dati tramite rest o graphql ad esempio, utilizzando 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 questo oggetto può ora essere accessibile solo dall'utente con l'objectid specificato passo 4 – scrivere funzioni di cloud code perché cloud code utilizzare cloud code su back4app ti consente di eseguire logica personalizzata lato server senza gestire i tuoi server puoi creare logica aziendale , validazioni dei dati , o triggers per la creazione, gli aggiornamenti e le eliminazioni degli oggetti esempio di funzione cloud code di seguito è riportata una semplice funzione cloud code (scritta in javascript) che calcola la lunghezza del testo 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 }; }); distribuzione puoi distribuire il tuo cloud code tramite il back4app cli o direttamente nella sezione cloud code > functions del tuo dashboard back4app back4app cli dashboard copia/incolla il tuo codice in main js e clicca distribuisci chiamare la tua funzione cloud puoi chiamare la tua funzione da yii 2 utilizzando una semplice richiesta 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 o tramite graphql mutation { calculatetextlength(input { text "hello graphql" }) { result } } passo 5 – configurazione dell'autenticazione autenticazione utente in back4app back4app utilizza la classe parse user come base per un'autenticazione sicura puoi creare e verificare utenti tramite chiamate rest o graphql creare un utente 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 application/json" \\ d '{ "username" "alice", "password" "secret123", "email" "alice\@example com" }' \\ https //parseapi back4app com/users accesso di un utente 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 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 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 accesso sociale per gli accessi sociali (google, apple, facebook, ecc ), configura le impostazioni oauth in back4app e la tua applicazione yii 2 per gestire i token necessari fai riferimento alla documentazione accesso sociale https //www back4app com/docs/platform/sign in with apple per le linee guida specifiche del fornitore verifica email e ripristino password abilita la verifica email e il ripristino della password nelle impostazioni email del tuo dashboard back4app per migliorare la sicurezza degli utenti vai alle impostazioni email nel tuo dashboard back4app abilita la verifica email e personalizza i tuoi modelli email testa che le tue email vengano inviate e ricevute correttamente passo 6 – gestione dello storage dei file back4app fornisce uno storage file sicuro tramite il sistema parse file anche se il parse php sdk è un'opzione, illustreremo nuovamente rest per coerenza caricamento file tramite 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 "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png questo restituisce un url per il file salvato puoi quindi memorizzare quell'url in una classe (come foto ) per un recupero successivo considerazioni sulla sicurezza dei file puoi limitare i caricamenti di file solo agli utenti autenticati o a ruoli specifici configurando le impostazioni del server parse nella tua app per un controllo più granulare, combina queste impostazioni con le tue regole acl e clp passo 7 – verifica email e ripristino password panoramica la verifica email assicura che gli utenti possiedano gli indirizzi email con cui si registrano, e il ripristino della password consente loro di recuperare gli account configurazione del dashboard di back4app abilita la verifica dell'email sotto impostazioni app > impostazioni email personalizza l'indirizzo “da” e i modelli di email testa creando un nuovo utente per confermare che l'email di verifica venga inviata implementazione nella tua applicazione yii 2, indirizza gli utenti a un percorso che attiva il endpoint di reset della password https //www back4app com/docs/users/password reset il resto del flusso (come l'invio dell'email effettiva) è gestito dall'infrastruttura di back4app passo 8 – pianificazione dei compiti con cloud jobs cosa fanno i cloud jobs i cloud jobs in back4app ti permettono di pianificare compiti di routine, come la pulizia dei dati o l'invio di notifiche definiscili nel tuo cloud code ( main js ) e pianificali nel dashboard esempio compito di pulizia 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); } }); passo 9 – integrazione dei webhook definizione i webhook consentono alla tua applicazione back4app di inviare richieste http automatizzate a servizi esterni quando si verificano eventi, come la creazione di un nuovo todo configurazione nel tuo dashboard di back4app , vai su altro > webhooks aggiungi un webhook endpoint (ad esempio, https //your external service com/webhook ) configura i trigger (ad esempio, “nuovo record nella classe todo”) con i webhook, puoi inviare notifiche ad altri servizi (come slack, stripe o la tua api personalizzata) ogni volta che un todo oggetto viene creato o aggiornato passo 10 – esplorare il pannello di amministrazione di back4app dove trovarlo l'app di amministrazione di back4app è un'interfaccia point and click per gestire i tuoi dati senza scrivere codice puoi attivarla visitando app dashboard > altro > app di amministrazione e poi abilita app di amministrazione caratteristiche dopo aver creato un utente amministratore, avrai un sottodominio dedicato per la tua app di amministrazione questo offre ai membri autorizzati del team un'interfaccia pulita per le operazioni crud sul tuo database di back4app, per rivedere i log o visualizzare le analisi — senza bisogno di codice conclusione in questo tutorial, hai scoperto come costruire un backend per yii 2 utilizzando back4app hai configurato un database basato su cloud, impostato una sicurezza robusta con acl e clp, programmato attività in background con cloud jobs e integrato servizi esterni tramite webhook hai anche visto come gestire l'autenticazione degli utenti e lo storage dei file in modo sicuro avendo combinato un framework yii open source per la costruzione di applicazioni web con l'infrastruttura scalabile di back4app, ora hai un ambiente potente pronto per lo sviluppo e la crescita prossimi passi procedi verso la produzione espandendo i tuoi modelli di dati, applicando impostazioni di sicurezza aggiuntive e ottimizzando le prestazioni integra api esterne (gateway di pagamento, fornitori di email) tramite cloud code o webhook diretti esplora la documentazione ufficiale di back4app per argomenti più approfonditi come sicurezza avanzata, analisi dei log e ottimizzazioni delle prestazioni scopri di più sulla costruzione di applicazioni web complesse con yii 2 utilizzando il controllo degli accessi basato sui ruoli, strategie di caching e relazioni avanzate tra database con questa base, puoi continuare a migliorare il tuo progetto yii 2, concentrarti sulla logica specifica del business e fornire funzionalità robuste e scalabili per i tuoi utenti buon coding e costruzione di moderne applicazioni web