# I framework PHP in sintesi

> Framework PHP a confronto: che cosa offrono Laravel, Symfony, Laminas, Slim e altri, come sceglierli e che cosa significa un framework per la sicurezza.

Fonte: https://phpsos.de/it/php/php-frameworks/  
Stato: 25/10/2026  
Fornitore: PHP SOS, Assistenza di emergenza PHP e sicurezza dei server. Assistenza immediata su WhatsApp: https://wa.me/491736494914?text=Buongiorno%20PHP%20SOS%2C%20abbiamo%20bisogno%20di%20aiuto%20con%20il%20nostro%20server%20PHP.%20Azienda%3A%20%E2%80%A6%20Sito%20web%3A%20%E2%80%A6

**In breve:** un framework PHP è un'ossatura di codice riutilizzabile che risolve già i compiti tipici di un'applicazione web: instradare le richieste verso il codice giusto, elaborare i dati dei moduli, interrogare i database, generare l'output. Framework PHP noti sono Laravel, Symfony, Laminas, CodeIgniter, Yii, CakePHP e Slim. Un framework porta con sé componenti di sicurezza, ma non protegge dalle vulnerabilità dell'interprete PHP come PHP2Shell.

## Che cos'è un framework PHP?

Senza framework ogni team riscrive routing, validazione dei moduli, sessioni e gestione degli errori. Un framework fornisce per questo componenti fissi e convenzioni. Risparmia tempo, rende il codice leggibile per i nuovi sviluppatori e concentra le funzioni di sicurezza in un punto, invece di spargerle in centinaia di file.

Per la direzione conta soprattutto una conseguenza: con la scelta di un framework ci si lega per anni al suo ciclo di rilascio. Se il framework non supporta più una versione di PHP o non viene più mantenuto, ogni aggiornamento diventa più costoso.

La maggior parte dei framework moderni si installa tramite [Composer](https://phpsos.de/it/php/composer/) e rispetta gli standard del PHP-FIG, ad esempio PSR-4 per l'autoloading o PSR-7 per i messaggi HTTP.

## I framework PHP noti a confronto

La panoramica seguente usa le autodescrizioni dei progetti sulle loro pagine iniziali. Rinunciamo volutamente a valutazioni per popolarità o quota di mercato, perché non esiste una fonte comune affidabile.

| Framework | Autodescrizione (in sostanza) | Uso tipico |
|---|---|---|
| Laravel | framework «batterie incluse» per applicazioni web | sviluppi su misura, portali, SaaS |
| Symfony | framework potente con componenti riutilizzabili | applicazioni grandi e longeve; componenti in altri progetti |
| Laminas | prosecuzione del Zend Framework mantenuta dalla comunità | applicazioni aziendali, middleware |
| CodeIgniter | framework piccolo con funzioni potenti | applicazioni più piccole, bassa soglia d'ingresso |
| Yii | framework per lo sviluppo rapido di applicazioni moderne | applicazioni web, base di alcuni CMS |
| CakePHP | framework con chiare convenzioni MVC | classiche applicazioni di database |
| Slim | micro-framework per applicazioni web e API | API snelle, servizi middleware |

Symfony cita sulla sua pagina iniziale Drupal, Laravel, API Platform e Composer come progetti che usano componenti Symfony. Un framework si nasconde quindi spesso anche dove non lo si vede direttamente. Come sia la situazione per CMS e shop lo mostra la pagina [CMS e sistemi di shop su PHP](https://phpsos.de/it/php/cms-und-shops-auf-php/).

## Componenti comuni a quasi tutti i framework

Nonostante filosofie diverse, la maggior parte dei framework condivide una struttura. Tutte le richieste passano per un unico punto di ingresso, il front controller, di solito `public/index.php`. Il server web inoltra a questo file ogni indirizzo per cui non esiste un file reale.

```nginx
# Esempio: Nginx inoltra i percorsi sconosciuti al front controller
root /var/www/app/public;

location / {
    try_files $uri /index.php$is_args$args;
}
```

Con Apache questo compito è svolto di solito da una regola di riscrittura nella cartella pubblica, con altri server web da una regola analoga. In tutti i casi è importante che il server web punti alla cartella `public` e non alla directory principale del progetto. Una directory dei documenti impostata male è tra le cause più frequenti per cui file di configurazione diventano all'improvviso consultabili pubblicamente.

Il vantaggio per la sicurezza: solo la cartella `public` sta nel webroot. Configurazione, codice sorgente e `vendor` stanno un livello più in alto e non sono raggiungibili via URL. Poi il router assegna la richiesta a un controller, il middleware verifica login o token CSRF e un motore di template genera l'output con escape automatico.

## Come si sceglie un framework?

Per uno sviluppo nuovo o per rilevare un progetto esistente aiutano queste domande:

1. **Manutenzione e ciclo di rilascio:** per quanto tempo le versioni ricevono aggiornamenti di sicurezza e ci sono versioni con supporto esteso?
2. **Supporto PHP:** la versione del framework in uso gira su una versione di PHP che riceve ancora aggiornamenti di sicurezza? Lo indicano i requisiti del progetto.
3. **Team e fornitori:** il team conosce il framework e in caso di emergenza si trovano specialisti?
4. **Ecosistema:** esistono pacchetti mantenuti per le Sue esigenze o bisognerebbe costruire molto da sé?
5. **Standard:** se il framework rispetta le interfacce PSR, i componenti si sostituiscono più facilmente in seguito.

Per i progetti Laravel e Symfony abbiamo pagine proprie sulla messa in sicurezza: [Mettere in sicurezza le applicazioni Laravel](https://phpsos.de/it/plattformen/laravel/) e [Mettere in sicurezza le applicazioni Symfony](https://phpsos.de/it/plattformen/symfony/).

## Che cosa offre un framework alla sicurezza e che cosa no

I framework tolgono agli sviluppatori molte fonti di errore: query di database preparate contro la SQL injection, escape automatico contro il cross-site scripting, protezione CSRF per i moduli, hash di password sicuri. Funziona però solo se il team usa questi componenti e non li aggira.

Contro PHP2Shell tutto ciò non aiuta. CVE-2026-109618 e CVE-2026-109619 si trovano nell'interprete PHP. Il team PHP classifica per mod_php il rischio più alto; lì è stato dimostrato un exploit prima ancora che giri codice dell'applicazione. Il framework non entra quindi nemmeno in gioco. Rimedia solo l'aggiornamento a PHP 8.5.12, 8.4.27, 8.3.36 o 8.2.35 e il riavvio di tutti i processi PHP.

> **Importante:**
> Un aggiornamento del framework e un aggiornamento di PHP sono due compiti separati. Entrambi appartengono alla manutenzione, ma solo l'aggiornamento di PHP chiude PHP2Shell.

Per i progetti più vecchi si aggiunge un ulteriore rischio: se un'applicazione dipende da una vecchia versione del framework, spesso dipende anche da una vecchia versione di PHP. Per PHP 8.1 e precedenti il progetto PHP non fornisce più aggiornamenti ufficiali.

## Come aiuta concretamente PHP SOS?

- Rileviamo framework, versione e requisiti PHP della Sua applicazione e accertiamo se entrambi ricevono ancora aggiornamenti di sicurezza.
- Verifichiamo la struttura: nel webroot c'è solo `public`, configurazione e `vendor` sono protetti?
- Pianifichiamo separatamente gli aggiornamenti del framework e di PHP, li testiamo e li installiamo con riavvio di tutti i worker.
- Per gli sviluppi su misura offriamo un [audit di sicurezza e penetration test](https://phpsos.de/it/leistungen/sicherheitsaudit-penetrationstest/) che verifica in modo mirato l'uso delle funzioni di protezione del framework.


## Domande frequenti

**Qual è il miglior framework PHP?**  
Dipende dal progetto. Contano dimensioni e durata dell'applicazione, il know-how del team, la manutenzione da parte del progetto e il supporto delle versioni attuali di PHP. Un framework ben mantenuto e conosciuto dal team è di solito la scelta migliore rispetto a quello più in voga del momento.

**Un framework protegge da PHP2Shell?**  
No. PHP2Shell si trova nell'interprete PHP e, secondo il team PHP, con mod_php è stato dimostrato un exploit prima ancora che giri codice dell'applicazione. Nessun aggiornamento del framework sostituisce l'aggiornamento del runtime PHP e il riavvio di tutti i worker.

**Che cos'è un micro-framework?**  
Un micro-framework fornisce solo il nucleo, tipicamente routing, middleware e oggetti richiesta-risposta. Accesso al database, template o moduli si scelgono a parte. Slim, ad esempio, si definisce da sé un micro-framework per PHP.

**Che cosa significa se un CMS usa componenti Symfony?**  
Usa singoli elementi di Symfony, ad esempio per l'elaborazione HTTP o la console, senza adottare l'intero framework. Gli avvisi di sicurezza su questi componenti riguardano allora anche il CMS, il che conta nella pianificazione degli aggiornamenti.

## Fonti

- [Symfony](https://symfony.com/)
- [Laravel](https://laravel.com/)
- [Laminas Project](https://getlaminas.org/)
- [Slim Framework](https://www.slimframework.com/)
