Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso Avanzado de PHP

Curso Avanzado de PHP

Héctor Benitez

Héctor Benitez

Middlewares y PSR15

16/35
Recursos

Los middleware están siendo muy utilizados no solamente en PHP sino en otros lenguajes. PHP tiene definido un PSR (PSR 15) con una interfaz común para trabajar los middleware.

Funcionan de la siguiente manera: Tenemos muchas capas encerrando nuestra aplicación, las cuales serán filtros que le darán funcionalidad y así un request que entre no deberá entrar al core de la aplicación y se obtendrá una respuesta si no pasa los filtros. Estos middleware pueden ser autenticaciones, revisiones de permisos, llamadas y conceptos de ese estilo.

  • Implementamos Harmony de Woohoolabs que es compatible con PSR15. Es el motor que nos permite usar middlewares y al final utilizar el dispatcher.
  • Siempre que estemos usando librerías compatibles con PSR, ellas dependerán siempre de las librerías de PSR que ofrece las interfaces.
  • En el ejemplo de uso de Harmony, ellos utilizan FastRoute y nosotros usamos AuraRouter en nuestro proyecto pero al ambos estar basados en los mismos estándares, no hay problema de acoplamiento.
  • ServerRequestFactory sirve para crear un objeto request que nosotros ya hacemos con Zend.
  • HttpHandlerRunner ejecuta una interfaz tipo PSR 15 y emite la respuesta generada.
  • AuraRouter no es compatible con PSR 15 y por eso debemos buscar una implementación que lo mete dentro de un contenedor que lo hará compatible.
  • Cuando entramos a un middleware siempre vamos a necesitar revisar el método process que nos dice cómo está funcionando todo.
  • Sólo se deben editar librerías de terceros para realizar debug.

Aportes 33

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Interesante, aunque me causa intriga saber por qué aura/router no es compatible con PSR-7, si en su documentación dice que si lo es

De igual manera me causa intriga saber cómo funciona Harmony jaja, es decir, ¿Cómo sabe Harmony cómo se llaman los índices del arreglo que retorna mi router y así?

Imagino que igual Harmony ya se encarga de hacer el echo de $response->getBody() que teníamos al final

Para los que tengan un error con el SapiEmitter de zend lo que deben hacer es desinstalarlo
composer remove zendframework/zend-httphandlerrunner
Y luego instalar el de laminas
composer require laminas/laminas-httphandlerrunner

mucho texto

Middlewares -> Bien pensado!

muy enredado con adaptar aura router a la app. uno como desarrollador si le aparece eso es mejor buscar un router mas actualizado

Pienso que en vez de adaptar Aura Router a la app, sería mejor utilizar Harmony en todo su esplendor… el proyecto tendría menos dependencias, aunque eso no sea una preocupación, pero brindaría más claridad al tema y se aprovecharía de mejor manera el paquete de Harmony.

no entiendo porque aura router hay que hacerle ese adaptamiento si al principio se dijo que cumplía los estándares PSR.

Super claro 😃 gracias

Tuve un error en el aura-router y para arreglarlo lo cambie por el que recomendaba harmony

os middleware están siendo muy utilizados no solamente en PHP sino en otros lenguajes. PHP tiene definido un PSR (PSR 15) con una interfaz común para trabajar los middleware.

Funcionan de la siguiente manera: Tenemos muchas capas encerrando nuestra aplicación, las cuales serán filtros que le darán funcionalidad y así un request que entre no deberá entrar al core de la aplicación y se obtendrá una respuesta si no pasa los filtros. Estos middleware pueden ser autenticaciones, revisiones de permisos, llamadas y conceptos de ese estilo.

Implementamos Harmony de Woohoolabs que es compatible con PSR15. Es el motor que nos permite usar middlewares y al final utilizar el dispatcher.

Siempre que estemos usando librerías compatibles con PSR, ellas dependerán siempre de las librerías de PSR que ofrece las interfaces.

En el ejemplo de uso de Harmony, ellos utilizan FastRoute y nosotros usamos AuraRouter en nuestro proyecto pero al ambos estar basados en los mismos estándares, no hay problema de acoplamiento.

ServerRequestFactory sirve para crear un objeto request que nosotros ya hacemos con Zend.

HttpHandlerRunner ejecuta una interfaz tipo PSR 15 y emite la respuesta generada.
AuraRouter no es compatible con PSR 15 y por eso debemos buscar una implementación que lo mete dentro de un contenedor que lo hará compatible.
Cuando entramos a un middleware siempre vamos a necesitar revisar el método process que nos dice cómo está funcionando todo.
Sólo se deben editar librerías de terceros para realizar debug.

Qué locura esta clase hahahaha, pasé 1 hora tratando de corregir mi error y cuando me doy cuenta en la siguiente clase se arregla jajaajja qué cosas.

También porque el paquete Harmony ha sido actualizado entonces, pensé que por eso me daba error.

Funcionan de la siguiente manera: Tenemos muchas capas encerrando nuestra aplicación, las cuales serán filtros que le darán funcionalidad y así un request que entre no deberá entrar al core de la aplicación y se obtendrá una respuesta si no pasa los filtros. Estos middleware pueden ser autenticaciones, revisiones de permisos, llamadas y conceptos de ese estilo

Implementamos Harmony de Woohoolabs que es compatible con PSR15. Es el motor que nos permite usar middlewares y al final utilizar el dispatcher

Siempre que estemos usando librerías compatibles con PSR, ellas dependerán siempre de las librerías de PSR que ofrece las interfaces

En el ejemplo de uso de Harmony, ellos utilizan FastRoute y nosotros usamos AuraRouter en nuestro proyecto pero al ambos estar basados en los mismos estándares, no hay problema de acoplamiento

ServerRequestFactory sirve para crear un objeto request que nosotros ya hacemos con Zend

HttpHandlerRunner ejecuta una interfaz tipo PSR 15 y emite la respuesta generada

AuraRouter no es compatible con PSR 15 y por eso debemos buscar una implementación que lo mete dentro de un contenedor que lo hará compatible

Cuando entramos a un middleware siempre vamos a necesitar revisar el método process que nos dice cómo está funcionando todo

Teniendo problemas, es que aprendemos porque cuando los solucionamos todo ese esfuerzo se ve recompensado

Sólo se deben editar librerías de terceros para realizar debug

Los middleware están siendo muy utilizados no solamente en PHP sino en otros lenguajes. PHP tiene definido un PSR (PSR 15) con una interfaz común para trabajar los middleware

Saben como hace el profesor para ver el codigo dentro de DispatcherMiddleware() en VS Code? He intentado pero no se cual sea la combinacion de techas para al hacer clic y abrir esta clase

Un crack este si a seguir

![](

Y si no es compatible con PSR15 porque no uso otro que si sea compatible…?

pronuncian mal la lubrería, según la documentación se dice https://es.howtopronounce.com/dɪʌktɒrɒs