Sviluppare in PHP 7


Il libro di Enrico Zimuel sullo sviluppo professionale di applicazioni web e API


Milano, Tecniche Nuove, 2017
Brossura, pp. 352, ISBN 978-88-481-3120-9
con la prefazione di Francesco Fullone, presidente del GrUSP.


Acquista il libro
sconto 20%



I codici sorgenti del libro sono disponibili su github


Il libro

Il libro introduce allo sviluppo di applicazioni web professionali in PHP 7. Gli argomenti presentati sono utili per iniziare a sviluppare in PHP o per approfondire le nuove funzionalità della versione 7. Se siete programmatori alle prime armi o se avete anni di esperienza, troverete comunque del materiale utile in questo libro.

Il testo parte dalle basi del linguaggio per arrivare allo sviluppo di applicazioni web basate su architetture MVC, utilizzando Zend Framework 3, o middleware tramite il progetto Expressive con lo standard PSR-7. Vengono presentati i moderni strumenti di sviluppo, come l’utilizzo di composer, la gestione dei codici sorgenti tramite git, i test unitari con PHPUnit, il deploy di applicazioni tramite Deployer e Ansible, la gestione dei database MySQL e MongoDB, l’utilizzo di ORM come Doctrine, etc.

Un intero capitolo è dedicato al tema dello sviluppo di web API con architetture REST, utilizzando un approccio middleware o tramite il progetto open source Apigility.

Il libro contiene le novità del PHP fino alla versione 7.2, prevista per fine 2017.

Indice del libro

Capitolo 1 - Introduzione al PHP

  • Storia ed evoluzione del PHP
  • Licenza d’utilizzo
  • Il logo e la mascot del PHP
  • L’interprete del linguaggio
  • L’ecosistema PHP
  • La community PHP
  • La scena italiana

Capitolo 2 - Il linguaggio

  • Hello World
  • Tipi di dati e variabili
    • Integer
    • Double
    • String
    • Array
    • Stringhe come array
  • Istruzioni condizionali
  • Cicli iterativi
    • For
    • While
    • Do-while
    • Break e continue
  • Funzioni
    • La visibilità delle variabili
    • Passaggio per valore o per riferimento
    • Parametri opzionali e operatore variadic
    • Funzioni anonime
    • Gestione dei tipi in ingresso e uscita

Capitolo 3 - Programmazione ad oggetti

  • Le classi
  • Costruttore di classe
  • Namespace
  • Autoloading
  • Ereditarietà
  • Classi astratte e final
  • Interfacce
  • Entità statiche
  • Traits
  • Classi anonime

Capitolo 4 - Gestione degli errori

  • Tipi di errore
  • Log degli errori
  • Gestione delle eccezioni

Capitolo 5 - Organizzare un progetto in PHP

  • Composer
    • Aggiornare le dipendenze
    • Autoloading
    • Scelta del repository
  • Come scegliere un progetto open source
  • Versionamento dei sorgenti
    • Avviare un progetto con Git
    • Branch
    • Push nel repository github
    • Pull dal repository github
    • Gestione dei conflitti
    • Pull request
  • Test automatici con PHPUnit
    • Installazione di PHPUnit
    • Come scrivere un test automatico
    • Configurazione ed esecuzione di una suite di test
    • Code coverage
  • Organizzazione dei file

Capitolo 6 - File e database

  • Gestione dei file in PHP
    • Utilizzo di fwrite() e fread()
    • Lock dei file
    • File CSV
    • File JSON
    • File XML
  • Database
    • Utilizzo di PDO
    • ORM e Doctrine
    • Database NoSQL e MongoDB

Capitolo 7 - Il Web

  • il protocollo HTTP
    • Il web server
    • Apache
    • Nginx
    • PHP Web Server
    • Richieste HTTP in PHP
    • Risposte HTTP in PHP
  • Gestione di un template HTML
  • Invio di file
  • Cookie
  • Sessioni
  • Routing di una richiesta HTTP
  • Lo standard PSR-7

Capitolo 8 - Struttura e gestione di un’applicazione web

  • Architetture MVC
  • Architetture Middleware
  • Infrastruttura di un’applicazione web
  • Deploy di un’applicazione PHP
    • Deployer
    • Ansible
  • Sistemi di virtualizzazione

Capitolo 9 - Sviluppo di web API

  • Le caratteristiche di una web API
  • Architetture REST
    • HAL
  • Sviluppo di API REST middleware
  • Autenticazione e Autorizzazione
    • HTTP Basic Access Authentication
    • HTTP Digest Access Authentication
    • OAuth2
  • Documentazione
  • Apigility

Capitolo 10 - Sicurezza in PHP

  • Attaccare un'applicazione web
  • Injection
    • SQL Injection
    • Directory traversal
  • Cross-Site Scripting (XSS)
  • Proteggere dati sensibili
    • Memorizzare una password utente
    • Cifrare informazioni sensibili
    • Authenticated encryption
    • Crittografia a chiave pubblica
    • Autenticazione
  • Cross-Site Request Forgery (CSRF)
  • Utilizzo di librerie con vulnerabilità conosciute
  • Autorizzazioni
    • ACL, Access Control List
    • RBAC, Role-based Access Control

L'Autore

Enrico Zimuel sviluppa applicazioni web dal 1996. Lavora come Senior Software Engineer presso Zend Technologies, una società Rogue Wave Software (USA). Sviluppatore open source, è co-autore dei progetti PHP Apigility, Expressive e Zend Framework. E' un PHP Certified Engineer e membro dello Zend Education Advisory Board. Laureato cum laude in Economia Informatica ha svolto attività di ricerca in algoritmi e strutture dati presso l'Informatics Institute dell'Università di Amsterdam. Speaker TEDx e relatore in più di 80 conferenze internazionali. Sul tema dello sviluppo web ha già pubblicato i libri PHP Best Practices e Javascript Best Practices. Co-fondatore del PHP User Group di Torino, città dove vive e lavora (da remoto).

Maggiori informazioni sull'autore sono disponibili sul sito www.zimuel.it

Approfondimenti

Di seguito sono riportati alcuni approfondimenti dei temi trattati nel libro. La maggior parte di questi sono in inglese.

Installare PHP

PHP 7

Best Practices

Unit test e Test Driven Development (TDD)

Programmazione orientata agli oggetti in PHP

Database

Sicurezza in PHP

Sistemi cloud

News e podcast

Contatti

Se desideri contattare l'autore del libro, utilizza il modulo sottostante.