Per iniziare a lavorare sul progetto Kvak abbiamo innanzitutto la necessità di installare il framework Symfony in locale.
Il nostro ambiente Docker contiene già la configurazione necessaria per l’installazione di base. Qualora durante lo sviluppo emergessero nuove necessità verrà modificata in corso d’opera.
Prima di procedere con l’installazione vediamo però quali sono i requisiti minimi necessari per far girare correttamente un'installazione di Symfony Framework. Queste informazioni sono importanti perché una volta completato il progetto in locale dovremo pubblicarlo su server ed è fondamentale che la scelta ricada su un ambiente che supporti tali requisiti.
Requisiti tecnici
Per l'installazione di Symfony Framework abbiamo bisogno di:
- PHP 7.2.9 o successivi (nel progetto utilizziamo la 7.3) con le estensioni Ctype, iconv, JSON, PCRE, Session, SimpleXML e Tokenizer.
- Composer installato.
- Un Web server compatibile con PHP (Apache, nginx..).
Il comando symfony
Una volta assicurati che il nostro ambiente di sviluppo sia compatibile con i minimum requirements del framework possiamo procedere con il download del tool symfony
che ci permetterà di effettuare facilmente l’installazione.
Come primissima cosa entriamo in SSH all’interno del container app
come utente root
tramite il comando:
docker exec -it kvak_app /bin/bash
Una volta entrati nel container possiamo lanciare il comando:
$ curl -sS https://get.symfony.com/cli/installer | bash && mv /root/.symfony/bin/symfony /usr/local/bin/symfony && chmod a+x /usr/local/bin/symfony
Analizziamo il comando per capire cosa facciamo:
- effettuiamo il download di un file remoto con
curl ... | bash
e lo eseguiamo immediatamente; - spostiamo il binario appena all’interno di
/usr/local/bin/symfony
; - assegniamo i permessi di esecuzione
chmod a+x
al binario.
Ora che abbiamo il binario del comando symfony
usciamo dal container e rientriamo come utente www-data
. Questo sarà l’utente con cui lavoreremo sul progetto:
docker exec -e COLUMNS="`tput cols`" -e LINES="`tput lines`" -u www-data -it kvak_app /bin/bash
Vista la dimensione del comando potrebbe essere comodo inserirlo all’interno di un Makefile
o di un file bash così da non doverlo riscrivere ogni volta o ricercarlo nella history della console.
Se dalla console provassimo a digitare symfony
otterremmo un output simile al seguente:
Symfony CLI version v4.10.1 (c) 2017-2019 Symfony SAS
Symfony CLI helps developers manage projects, from local code to remote infrastructure
These are common commands used in various situations:
Work on a project locally
new Create a new Symfony project
serve Run a local web server
server:stop Stop the local web server
security:check Check security issues in project dependencies
composer Runs Composer without memory limit
console Runs the Symfony Console (bin/console) for current project
php, pecl, pear, php-fpm, php-cgi, php-config, phpdbg Runs the named binary using the configured PHP version
Siamo quindi pronti per installare il nostro progetto.