Dgroove

Corso di formazione introduzione allo sviluppo web con PHP

DESCRIZIONE
La conoscenza del linguaggio di programmazione PHP è una delle competenze tecniche più richieste agli sviluppatori web poiché è quello più utilizzato al mondo.
Questo linguaggio lato server permette infatti lo sviluppo completo di pagine, siti e web app dinamiche in grado di interfacciarsi con database e gestire tutte le interazioni che normalmente un utente ha con una pagina web. Può inoltre essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica.
Form, moduli di contatto, pagine di login, gestione di aree riservate, invio di mail: tutte queste e molte altre sono le competenze di chi lavora e sviluppa in PHP.

DESTINATARI: il corso è rivolto a chi possiede competenze di programmazione in qualsiasi linguaggio con paradigma orientato agli oggetti (C#, Java, …).

REQUISITI
[Per quei programmatori che non hanno esperienza di programmazione web, e introduce i linguaggi e le tecnologie indispensabili per il corso. Questo corso può essere integrato con un corso base di linguaggi lato client e programmazione front-end che introduca le tecnologie HTML, CSS e JS.]
– Come funziona il web: introduzione al modello client-server per il www (server web, interpreti, browser) e dei protocolli utilizzati (http)
– HTML: concetti essenziali
– CSS: concetti essenziali
– JavaScript: concetti essenziali
– Come mettere tutto insieme: architettura di un sito web e strumenti di lavoro

MATERIALE DEL CORSO: per la parte pratica/laboratorio, l’ambiente di sviluppo verrà configurato tramite Vagrant. È pertanto sufficiente un computer con Vagrant e VirtualBox installati su un sistema operativo supportato e la connettività ad Internet.

PROGRAMMA DEL CORSO
1. Blocco 1: Introduzione e sintassi base
– Il modello di sviluppo su piattaforma LAMP e affini (Architettura LAMP – Open source vs. closed source: la filosofia Open Source e le sue licenze – Dove sono i miei dati? On-premises, shared hosting, cloud, CDN, PaaS – Dove posso chiedere aiuto? Documentazione e community)
– PHP: i blocchi di costruzione (Origini, storia, governance (meccanismo RFC, PHP-FIG, …). Gli standard – Il linguaggio (interpretato a tipizzazione debole, thread di esecuzione, concorrenza) – Il modello di esecuzione in un ambiente web: il protocollo HTTP, l’interazione con l’interprete – Costrutti di base: variabili, tipi di dato, operatori; blocchi di esecuzione, visibilità variabili, variabili globali; funzioni, costrutti; array; errori, eccezioni)
– Primo sguardo su HTML
– Q&A
Laboratorio: creeremo un’app per la gestione di una lista della spesa. In questo blocco imposteremo l’ambiente di sviluppo, imposteremo la nostra prima pagina HTML/PHP, e creeremo e valideremo un form.
2. Blocco 2: feature avanzate di PHP, sicurezza
– PHP: caratteristiche indispensabili (I cookie – $_SESSION: salvataggio dei dati di sessione, cookie di sessione, serializzazione oggetti, funzioni magiche, sicurezza – $_SERVER: le informazioni sul server – $GLOBALS e le variabili globali – Comunicazione con il database: mysqli e dbo)
– Privacy e sicurezza. Vettori di attacco standard (A cosa serve attaccare un sito web? – Mai fidarsi dei dati dell’utente: register_globals, whitelisting e blacklisting – Come memorizzare le credenziali nel database, attacchi contro l’autenticazione utente (bruteforcing, timing) – Tipi di attacco: SQL Injection, XSS, Filesystem, DoS, …)
Laboratorio: analizzeremo il codice scritto in precedenza per cercare le vulnerabilità di cui abbiamo parlato. Vedremo in che modo è possibile interagire con il database, e implementeremo un meccanismo minimale di login. Vedremo infine in quale modo è possibile fare il debug del codice PHP.
3. Blocco 3: programmazione a oggetti con PHP
– Programmazione a oggetti (Classi e oggetti: Dichiarazione e istanziazione di oggetti; Passaggio di parametri, serializzazione, type hinting; Ereditarietà; Loading e autoloading; Namespacing; DBO, Propel, Doctrine; Alcuni pattern: singleton, factory, MVC, Dependency Injection)
– Strategie di organizzazione di un progetto web (Gestire le dipendenze di un progetto: Composer – I framework lato server, e l’organizzazione dei file: Laravel – I framework lato client: Linguaggi di templating; Costruzione di web app in congiunzione con framework JS: Vue.js)
Laboratorio: rielaboreremo il codice scritto prima con le modalità a oggetti.

Exit mobile version