Prima di entrare nel vivo di Symfony e del nostro progetto Kvak abbiamo bisogno di installare un ambiente di sviluppo in locale.
GitHub
Il codice prodotto in ogni lezione verrà rilasciato su un repository pubblico hostato su GitHub all’indirizzo https://github.com/dymissy/html_it_kvak. Per ogni lezione verrà prodotto un tag apposito in maniera da poter esercitarsi sulla lezione specifica partendo da una base comune di codice.
Per iniziare, quindi, cloniamo il progetto sulla nostra macchina locale:
git clone git@github.com:dymissy/html_it_kvak.git
Il branck master
conterrà sempre l’ultima versione aggiornata del progetto. In base a quando stai leggendo questa guida, quindi, potresti trovarti ad uno stadio già molto avanzato del progetto e quindi avere dei file diversi.
Per essere sicuri di lavorare con gli stessi file possiamo spostarci sul tag docker
con un semplice checkout
:
git checkout docker
La struttura dei file del progetto è la seguente:
app/
docker/
resources/visual/
docker-compose.yml
La cartella app
conterrà i file del progetto e quindi la nostra applicazione. Allo stadio corrente è presente il solo file index.php
nella sotto-cartella public
con un phpinfo()
che utilizzeremo per verificare di aver effettuato correttamente il setup del progetto.
I file contenuti nella directory docker
ed il file docker-compose.yml
sono necessari per creare un ambiente containerizzato utilizzando Docker.
I file della cartella resources/visual
contengono invece gli assets statici ed i template HTML che integreremo in seguito nel progetto.
Docker
Ora che abbiamo scaricato il progetto in locale possiamo effettuarne il setup.
Innanzitutto dobbiamo essere certi di aver installato Docker e docker-compose nella nostra macchina. Docker è installabile nativamente su Linux, per Windows e Mac OS è invece possibile installare le versioni ad hoc:
Per maggiori informazioni su Docker si può fare riferimento alla Guida a Docker.
Aprendo il file docker-compose.yml
possiamo notare che l'ambiente è composto da 3 container:
app
che contienephp-fpm
ed è il container su cui faremo girare l’applicazionewebserver
, basato sull’immagine ufficiale di nginx, rappresenta il Web server che risponde alla porta 80db
, basato su MySQL che utilizzeremo come database del progetto
Per comodità possiamo anche decidere di assegnare un hostname al progetto modificando il file hosts
del terminale aggiungendo la riga:
127.0.0.1 kvak.local
Questo consentirà di visualizzare il progetto all’indirizzo http://kvak.local.
Una volta installato e configurato tutto correttamente possiamo lanciare docker-compose
per eseguire il setup dell’ambiente con il comando:
docker-compose up -d
Lanciando poi il comando docker ps
, dovremmo avere una situazione simile alla seguente:
kvak → docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a594e136318 nginx:latest "nginx -g 'daemon of…" 2 days ago Up 1 second 0.0.0.0:80->80/tcp kvak_webserver
f01debe1e2c7 kvak_app "docker-php-entrypoi…" 2 days ago Up 2 seconds 0.0.0.0:9000->9000/tcp kvak_app
e65ed71e7cb8 mysql:8.0.18 "docker-entrypoint.s…" 2 days ago Up 3 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp kvak_db
A questo punto aprendo il browser all’indirizzo http://kvak.local dovremmo vedere l’output della funzione phpinfo()
.