Introduzione
Questa guida illustrerà come costruire un'applicazione Web basata su PHP e Angular, dove useremo PHP per gestire i dati di un database MySQL e Angular per tutto ciò che riguarda il front-end (presentazione e modifica dei dati). Angular verrà utilizzato nella sua versione 5, l'ultima oggi disponibile. L'obiettivo è quello di creare un'applicazione CRUD (Create, Read, Update, Delete) funzionante.
Per quanto riguarda PHP il compito sarà quello di leggere e scrivere nel database nonché di dialogare con l'applicazione esclusivamente via JSON. Per ottenere questo risultato implementeremo un'architettura RESTful, quindi a seconda del metodo HTTP di chiamata la componente server side dell'applicazione effettuerà un'operazione precisa. In particolare lo schema che useremo sarà questo:
- GET: servirà per recuperare una risorsa esistente, l'URL generico restituirà la lista degli elementi, l'URL con l'aggiunta del parametro
id
restituirà un solo elemento specifico. - POST: a una richiesta HTTP POST corrisponde un'operazione d'inserimento e creazione di un nuovo record nel database.
- PUT: verrà utilizzato per la modifica di un record.
- DELETE: servirà per eliminare un record dal database.
Il front-end avrà a disposizione una serie di URL da invocare a seconda dei dati gestiti, o meglio, l'URL sarà sempre il medesimo, varierà il metodo di accesso ad esso ed eventualmente i parametri passati, come corpo della chiamata o come stringa appesa. La risorsa PHP chiamata sarà un'interfaccia che smisterà le operazioni a una classe per rendere effettive le operazioni desiderate.
Per quanto riguarda invece la presentazione dei dati questa sarà interamente a carico di Angular: si tratterà di una classica SPA (Single Page Application) dove useremo un component per ciascuna operazione da svolgere, il passaggio da una schermata all'altra verrà gestito da un file di routing predisposto per lo scopo, mentre per il dialogo con il server creeremo gli appositi service. In questo modo avremo la possibilità di visualizzare la rappresentazione completa di un'applicazione Angular.