Installazione dello stack LEMP dockerizzato con Docker Compose


Questa guida fornisce le istruzioni necessarie ad installare lo stack LEMP utilizzando Docker Compose e a deployare un’applicazione PHP. Verrà creata una semplice applicazione per visualizzare una lista di articoli di un e-commerce.

Prerequisiti

Configurazione dello stack LEMP

Iniziare creando un file docker-compose.yml nella directory del progetto:


services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - php
      - mysql

  php:
    image: php:8.2-fpm
    container_name: php
    volumes:
      - ./app:/var/www/html

  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: ecommerce
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

Creare i file e le directory necessari:


mkdir -p app config/nginx
touch config/nginx/default.conf

Configurare Nginx creando un file default.conf nella directory config/nginx:


server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Avvio dei container

Eseguire il comando per avviare i servizi:


docker-compose up -d

Verificare che tutti i container siano in esecuzione:


docker-compose ps

Creazione dell’applicazione PHP

Creare un file index.php nella directory app con il seguente contenuto:


<?php
$articoli = [
    ['id' => 1, 'nome' => 'Articolo 1', 'prezzo' => 10.99],
    ['id' => 2, 'nome' => 'Articolo 2', 'prezzo' => 15.99],
    ['id' => 3, 'nome' => 'Articolo 3', 'prezzo' => 8.99],
];

echo "<h1>Lista di articoli</h1>";
echo "<ul>";
foreach ($articoli as $articolo) {
    echo "<li>" . htmlspecialchars($articolo['nome']) . " - $" . number_format($articolo['prezzo'], 2) . "</li>";
}
echo "</ul>";
?>

Test dell’applicazione

Aprire il browser e navigare all’indirizzo http://localhost. Verrà visualizzata la lista degli articoli del nostro e-commerce.

Riferimenti

Gli Alias in PHP Composer


Questo articolo esplora il concetto di aliasing in PHP Composer, e ne dimostra l’utilizzo con esempi pratici.

Cosa sono gli Alias in PHP Composer?

Composer, il gestore delle dipendenze per PHP, utilizza gli alias per semplificare e migliorare la gestione delle dipendenze.
Un alias in Composer ti consente di:

  • Fare riferimento a versioni specifiche di un pacchetto utilizzando identificatori alternativi.
  • Installare metapacchetti che raggruppano dipendenze correlate sotto un unico identificatore.

Gli alias sono particolarmente utili quando si utilizzano i “pack” di Symfony, che aggregano più pacchetti per fornire funzionalità pronte all’uso.
Per maggiori dettagli, puoi visitare la
documentazione ufficiale sugli Alias di Composer.

Esempio: L’Alias del Pack ORM di Symfony

Questo esempio pratico utilizza l’alias di Symfony per il suo pack di Object-Relational Mapping (ORM).

Quando si esegue il comando:


composer require orm

            

Composer interpreta l’alias orm come riferimento al symfony/orm-pack,
un metapacchetto che installa un gruppo di dipendenze relative a Doctrine, come:

  • doctrine/orm
  • doctrine/dbal
  • symfony/doctrine-bridge
  • …e altro.

Ecco un esempio dell’esecuzione del comando:


composer require orm

            

Composer aggiorna il file composer.json così:


{
    "require": {
        "symfony/orm-pack": "^2.4"
    }
}

            

Composer quindi installa tutte le dipendenze elencate nel pack, come doctrine/orm, doctrine/dbal e altre. Tuttavia, il pacchetto symfony/orm-pack stesso viene spesso rimosso dal file composer.lock dopo l’installazione, poiché serve solo come contenitore.

Come Verificare Alias e Dipendenze

Il comando composer show verificare le dipendenze installate:


composer show

            

Cerca le dipendenze elencate nell’output. Sebbene il metapacchetto stesso possa non apparire, i suoi componenti individuali saranno presenti.

Conclusione

Gli alias di Composer, come orm di Symfony, semplificano la gestione delle dipendenze fornendo comandi abbreviati per pacchetti complessi o metapacchetti. Un utilizzo appropriato puo semplificare i progetti PHP e mantenere configurazioni delle dipendenze più pulite.

Introduzione a Symfony – Framework PHP per lo Sviluppo Web

Symfony è un framework PHP open-source che consente agli sviluppatori di costruire applicazioni web robuste, scalabili e mantenibili. Lanciato nel 2005 da Fabien Potencier, Symfony è rapidamente diventato uno dei framework più utilizzati nella comunità PHP, grazie alla sua flessibilità, modularità e all’approccio orientato alle migliori pratiche di sviluppo.

Perché Scegliere Symfony?

Symfony è progettato per semplificare lo sviluppo di applicazioni complesse e gestire le necessità dei grandi progetti. Di seguito, alcuni dei motivi per cui Symfony è una scelta eccellente per lo sviluppo web:

  • Modularità: Symfony è basato su un sistema di componenti indipendenti e riutilizzabili, detti “bundle”. Questo approccio consente agli sviluppatori di aggiungere solo ciò di cui hanno bisogno e di personalizzare l’applicazione in base ai requisiti.
  • Manutenibilità e Scalabilità: Grazie alla sua architettura modulare e al forte orientamento alle best practice, Symfony consente di scrivere codice chiaro e mantenibile, facilitando anche la scalabilità a lungo termine.
  • Comunità Attiva e Supporto: Con una vasta comunità di sviluppatori e una documentazione completa, Symfony offre risorse, plugin e librerie pronte all’uso, che permettono di risolvere velocemente molti problemi comuni.
  • Performance e Ottimizzazione: Symfony include diverse funzionalità per migliorare le prestazioni, come la cache integrata, e supporta le ultime versioni di PHP, consentendo di sfruttare le ottimizzazioni delle nuove release del linguaggio.

Principali Componenti di Symfony

Symfony è costituito da numerosi componenti, ciascuno dei quali gestisce una parte specifica dell’applicazione:

  • Routing: Permette di definire l’URL della tua applicazione e di associare ciascuna rotta a un controller.
  • Doctrine ORM: Symfony utilizza Doctrine come ORM (Object-Relational Mapper) per interagire con il database in modo intuitivo.
  • Twig: È il motore di template di Symfony, che consente di creare pagine HTML in modo pulito e sicuro.
  • Event Dispatcher: Facilita la gestione degli eventi, permettendo di implementare azioni specifiche al verificarsi di eventi particolari.
  • Security: Symfony offre una suite di strumenti per gestire autenticazione e autorizzazione degli utenti.

Architettura e Design Pattern

Nelle prime versioni Symfony era legato al pattern MVC (Model-View-Controller), che separa la logica di business (Model), la gestione dei dati dell’interfaccia (View) e il controllo del flusso dell’applicazione (Controller). Nella version attuale 7.1 Symfony grazie alla sua modularità si adatta a vari tipi di architetture.

Inoltre, Symfony utilizza design pattern come il Dependency Injection e il Service Container, che aiutano a separare le dipendenze e a rendere il codice più testabile e scalabile.

Primi Passi con Symfony

Per iniziare con Symfony, è necessario avere PHP installato, insieme a Composer, il gestore di dipendenze per PHP. Di seguito i passaggi principali per configurare un nuovo progetto Symfony:

1. Installazione di Composer:


curl -sS https://getcomposer.org/installer | php
        

2. Creazione di un Progetto Symfony:


composer create-project symfony/skeleton nome-progetto
        

3. Avvio del Server di Sviluppo:

Nelle versioni passate di Symfony, il webserver per finalità di sviluppo veniva lanciato dai comandi della console del progetto:
php bin/console server:run

L’approccio corrente è quello di utilizzare il webserver fornito da symfony-cli. symfony-cli è una utility che contiene vari tool tra cui un webserver da potere usare in locale per finalità di sviluppo


cd nome-progetto
symfony  local:server:start

Questi passaggi avvieranno un server locale e permetteranno di visualizzare l’applicazione all’indirizzo http://localhost:8000.

Esempio di Applicazione con Symfony

Supponiamo di voler creare un’applicazione CRUD (Create, Read, Update, Delete) per gestire un catalogo di libri. Symfony consente di generare automaticamente gran parte del codice grazie ai comandi make.

1. Creare un’entità:


php bin/console make:entity Book
        

2. Generare un controller:


php bin/console make:controller BookController
        

3. Le Rotte:

Symfony utilizza i file di configurazione o le annotazioni all’interno del controller per definire le rotte.

4. Generare il Database:


php bin/console doctrine:database:create
php bin/console doctrine:schema:update --force
        

Questo passo creerà il database e le tabelle necessarie.

5. Visualizzare i Risultati:

Accedendo al controller generato, sarà possibile interagire con il catalogo di libri e visualizzare le funzionalità CRUD.

Symfony e la Comunità Open Source

Uno dei punti di forza di Symfony è l’integrazione con altre librerie open-source PHP e la possibilità di espandere le funzionalità tramite bundle aggiuntivi. Ad esempio, molti sviluppatori utilizzano API Platform, basato su Symfony, per creare rapidamente API RESTful.

Conclusione

Symfony è un framework potente e versatile per lo sviluppo di applicazioni PHP di alta qualità. Grazie alla sua architettura modulare e alle funzionalità integrate, offre agli sviluppatori un ecosistema completo per costruire applicazioni web di qualsiasi dimensione e complessità. Con il supporto della community e la continua evoluzione del framework, Symfony rimane una delle scelte migliori per chi vuole scrivere codice PHP mantenibile e scalabile.

Riferimenti