SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Globalcode – Open4education
Arquitetura PHP
PHP Middleware, o que são? Onde vivem? O que fazem?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
Anderson Luciano
Desenvolvedor Web
andersonluciano.me
@AndersonLuciano
andersonluciano.dev@gmail.com
github.com/andersonluciano
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
https://www.php-fig.orgPHP Framework Interop Group!
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• PSR-7: HTTP message interfaces
• Requests & Responses
• Tratando a web com seu devido respeito
• Baseado nas:
• RFC 7230
• (Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing)
• RFC 7231
• Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
• RFC 3986
• Uniform Resource Identifier (URI): Generic Syntax
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• PSR-7: HTTP message interfaces
$request = $request
->withMethod('OPTIONS')
->withRequestTarget('*')
->withUri(new Uri('https://example.org/'));
$request->getMethod();
$body = $request->parsedBody();
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• PSR-15: HTTP Server Request Handlers
• Processa a requisição e produz uma resposta
• Middleware em PHP
• Utilizam a Message Interface (PSR-7)
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• PSR-15: HTTP Server Request Handlers
interface MiddlewareInterface
{
/**
* Process an incoming server request
*
* Processes an incoming server request in order to produce a response.
* If unable to produce the response itself, it may delegate to the provided
* request handler to do so.
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface;
}
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Middleware - O que são?
• Desde 1980 - SO’s, Integrações entre sistemas, etc...
• Interoperabilidade entre softwares
• No PHP
• HTTP Server Request Handlers
• Manipuladores de requisições HTTP
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
BodyParams, Auth, DatabaseHandler, Routing, UrlHelper [...] ResponseFormatter
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• O que são?
BodyParams, Auth, DatabaseHandler, Routing, UrlHelper [...] ResponseFormatter
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Middleware - Onde vivem?
• Camadas do sistema!
• Diferenças do Padrão MVC
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Onde vivem?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Onde vivem?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Onde vivem?
• Operam dentro da
requisição
• São organizados no
formato de pilha
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• Middleware - O que fazem?
• Centralizam responsabilidades do processo
• Privacidade, conversões, permissões, formatações, logs,
gatilhos, [...]
• O céu é o limite!
• Permitem a interoperabilidade das aplicações
• if (forem bem implementados)
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
• 3 Dicas básica - Sempre faça uma das 3
• Retorne uma Response
• Baseada na ResponseInterface (PSR-7)
• Chame a próxima camada
• Retorne uma Exceção
Globalcode – Open4education
• Middleware - O que não fazer!
• Nunca terminarás a execução do programa em um
middleware.
• Nunca alterarás o conteúdo da response.
• Nunca deixarás de repassar a requisição para a camada
seguinte.
• Nunca desvirtuarás seu uso
• echo "<h1>Acesso Negado</h1>";exit;
PHP Middleware, o que são? Onde vivem? O que fazem?
Globalcode – Open4education
• Alguns Frameworks
PHP Middleware, o que são? Onde vivem? O que fazem?
Globalcode – Open4education
Exemplo - Zend Expressive
https://github.com/andersonluciano/api-middlewares-talk
PHP Middleware, o que são? Onde vivem? O que fazem?
Globalcode – Open4education
PHP Middleware, o que são? Onde vivem? O que fazem?
Anderson Luciano
Desenvolvedor Web
andersonluciano.me
@AndersonLuciano
andersonluciano.dev@gmail.com
github.com/andersonluciano
PHP Middleware - O que são? Onde vivem? O que fazem?

Mais conteúdo relacionado

Semelhante a PHP Middleware - O que são? Onde vivem? O que fazem?

Iniciando com PHP
Iniciando com PHPIniciando com PHP
Iniciando com PHPMichel Lima
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHPAdler Medrado
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
 
Service virtualization floripa
Service virtualization floripaService virtualization floripa
Service virtualization floripaErnesto Barbosa
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Tdc2019 intro event-sourcing_kafka
Tdc2019   intro event-sourcing_kafkaTdc2019   intro event-sourcing_kafka
Tdc2019 intro event-sourcing_kafkaMarcelo Ohashi
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP Domingos Teruel
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012Marco Antonio Maciel
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosEvaldo Junior
 
Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryFabricio Nogueira
 

Semelhante a PHP Middleware - O que são? Onde vivem? O que fazem? (20)

Iniciando com PHP
Iniciando com PHPIniciando com PHP
Iniciando com PHP
 
Webinar php extreme 5.3
Webinar php extreme 5.3Webinar php extreme 5.3
Webinar php extreme 5.3
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHP
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Service virtualization floripa
Service virtualization floripaService virtualization floripa
Service virtualization floripa
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Tdc2019 intro event-sourcing_kafka
Tdc2019   intro event-sourcing_kafkaTdc2019   intro event-sourcing_kafka
Tdc2019 intro event-sourcing_kafka
 
PHP, Mercado e Certificações
PHP, Mercado e CertificaçõesPHP, Mercado e Certificações
PHP, Mercado e Certificações
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012PHP e Robótica com Arduino - TDC 2012
PHP e Robótica com Arduino - TDC 2012
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In Santos
 
Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQuery
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
 

PHP Middleware - O que são? Onde vivem? O que fazem?

  • 1. Globalcode – Open4education Arquitetura PHP PHP Middleware, o que são? Onde vivem? O que fazem?
  • 2. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? Anderson Luciano Desenvolvedor Web andersonluciano.me @AndersonLuciano andersonluciano.dev@gmail.com github.com/andersonluciano
  • 3. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? https://www.php-fig.orgPHP Framework Interop Group!
  • 4. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • PSR-7: HTTP message interfaces • Requests & Responses • Tratando a web com seu devido respeito • Baseado nas: • RFC 7230 • (Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing) • RFC 7231 • Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content • RFC 3986 • Uniform Resource Identifier (URI): Generic Syntax
  • 5. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • PSR-7: HTTP message interfaces $request = $request ->withMethod('OPTIONS') ->withRequestTarget('*') ->withUri(new Uri('https://example.org/')); $request->getMethod(); $body = $request->parsedBody();
  • 6. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • PSR-15: HTTP Server Request Handlers • Processa a requisição e produz uma resposta • Middleware em PHP • Utilizam a Message Interface (PSR-7)
  • 7. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • PSR-15: HTTP Server Request Handlers interface MiddlewareInterface { /** * Process an incoming server request * * Processes an incoming server request in order to produce a response. * If unable to produce the response itself, it may delegate to the provided * request handler to do so. */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface; }
  • 8. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Middleware - O que são? • Desde 1980 - SO’s, Integrações entre sistemas, etc... • Interoperabilidade entre softwares • No PHP • HTTP Server Request Handlers • Manipuladores de requisições HTTP
  • 9. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 10. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 11. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 12. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 13. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 14. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são?
  • 15. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são? BodyParams, Auth, DatabaseHandler, Routing, UrlHelper [...] ResponseFormatter
  • 16. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • O que são? BodyParams, Auth, DatabaseHandler, Routing, UrlHelper [...] ResponseFormatter
  • 17. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Middleware - Onde vivem? • Camadas do sistema! • Diferenças do Padrão MVC
  • 18. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Onde vivem?
  • 19. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Onde vivem?
  • 20. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Onde vivem? • Operam dentro da requisição • São organizados no formato de pilha
  • 21. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem?
  • 22. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • Middleware - O que fazem? • Centralizam responsabilidades do processo • Privacidade, conversões, permissões, formatações, logs, gatilhos, [...] • O céu é o limite! • Permitem a interoperabilidade das aplicações • if (forem bem implementados)
  • 23. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? • 3 Dicas básica - Sempre faça uma das 3 • Retorne uma Response • Baseada na ResponseInterface (PSR-7) • Chame a próxima camada • Retorne uma Exceção
  • 24. Globalcode – Open4education • Middleware - O que não fazer! • Nunca terminarás a execução do programa em um middleware. • Nunca alterarás o conteúdo da response. • Nunca deixarás de repassar a requisição para a camada seguinte. • Nunca desvirtuarás seu uso • echo "<h1>Acesso Negado</h1>";exit; PHP Middleware, o que são? Onde vivem? O que fazem?
  • 25. Globalcode – Open4education • Alguns Frameworks PHP Middleware, o que são? Onde vivem? O que fazem?
  • 26. Globalcode – Open4education Exemplo - Zend Expressive https://github.com/andersonluciano/api-middlewares-talk PHP Middleware, o que são? Onde vivem? O que fazem?
  • 27. Globalcode – Open4education PHP Middleware, o que são? Onde vivem? O que fazem? Anderson Luciano Desenvolvedor Web andersonluciano.me @AndersonLuciano andersonluciano.dev@gmail.com github.com/andersonluciano