Arriva PHP-Middleworld!

La collezione di Middleware PHP compatibile con PSR-7

4'
Marco Perone 14/02/2017 12:55
Categoria: Aggiornamenti

E’ online php-middleworld.com, un repository per middleware compatibile con lo standard PSR-7 in PHP. Siamo lieti di condividere i progressi del progetto, e ciò che ci aspetta in futuro.

PSR-7

Tutto ha avuto inizio con PSR-7, un insieme di interfacce condivise per rappresentare i messaggi HTTP in PHP, consentendo un’astrazione delle applicazioni dal layer HTTP.

La caratteristica principale di PSR-7 è di essere indipendente dal framework e questo permette di poter utilizzare le sue interfacce con diversi framework quali Symfony, Zend Framework, Laravel e molti altri.

Questo grande vantaggio permette agli sviluppatori di scrivere codice indipendente dal framework con ampie possibilità di essere riutilizzato in altri progetti basandosi soltanto sulle interfacce PSR-7.

MIDDLEWARE IN PHP

L’altra parola chiave è middleware: dal momento in cui l’ecosistema PHP ha beneficiato di un’astrazione sufficiente dai messaggi HTTP, il passaggio successivo è stato pensare alla modalità migliore per realizzare applicazioni web a partire da questa astrazione.

Citando Matthew Weier O’Phinney, il concetto di middleware può essere riassunto in una singola funzione

function (request, response) : response

L’idea di fondo è che gli oggetti rappresentati nella richiesta HTTP e nella risposta HTTP vengano passati a una funzione che fa qualcosa con questi per restituire una risposta HTTP.

Questo modello dimostra di essere veramente semplice e utilizzabile per scopi diversi. Infatti, è già stato utilizzato con successo in diversi altri linguaggi di programmazione.

La modalità standard di comporre molteplici middleware è di passare un terzo argomento alla funzione in modo da permettere di invocare un altro middleware:

function (request, response, next) : response
{
    // do something on request
 
    response = next(request, response)
 
    // do something on response
 
    return response
}

Vari framework, come Zend Expressive, Slim, RadarSpiral si basano già sul concetto di middleware per creare applicazioni web.

RIUTILIZZARE MIDDLEWARE

Ora che abbiamo un modello così facilmente componibile basato su un’astrazione HTTP indipendente dai vari framework, possiamo iniziare a scrivere componenti riutilizzabili che potrebbero funzionare per ogni progetto PHP. Di sicuro il lavoro dello sviluppatore sarà notevolmente facilitato.

Abbiamo, quindi, la possibilità di avere middleware che si occupa di loggare tutte le richieste ricevute, middleware per il routing, middleware per gestire le autenticazioni oppure per gestire le sessioni degli utenti. Il ruolo del framework diventa semplicemente quello di tenere uniti tutti i pezzi del nostro lavoro nel miglior modo possibile.

La domanda che sorge spontanea a questo punto è: c’è qualcuno che ha già implementato il middleware che potrebbe servirmi per l’applicazione che sto sviluppando?

E’ ARRIVATO PHP-MIDDLEWORLD!

Per ora l’unica risposta alla domanda precedente poteva essere fornita da Packagist, Github, o – nel peggiore dei casi – da google.

middleware repository request

Dopo aver ricevuto così tanto dalla community nel corso degli anni, abbiamo pensato che fosse giunto il momento di restituire qualcosa di importante. Così è nato php-middleworld.com, con l’intento di dare agli sviluppatori PHP degli strumenti per trovare rapidamente il middleware di cui hanno bisogno (spesso potendo scegliere tra varie implementazioni).

IL FUTURO

Abbiamo già in mente diverse migliorie per php-middleworld.com.

In primo luogo ci piacerebbe permettere ai diversi sviluppatori di aggiungere il middleware da loro sviluppato in modo da far crescere il nostro database grazie al contributo di tutti.

In seguito vorremmo aggiungere anche middleware compatibile con PSR-15, in modo da essere pronti quando questo nuovo standard sarà approvato.

Non dilunghiamoci troppo, per informazioni più dettagliate visita php-middleworld.com e segui @phpmwd su Twitter!

Stay tuned!

Articolo di Marco Perone

Segui @marcoshuttle su twitter.

Inserisci un commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

*