Talk sobre middleware realizada na The Dev Conference 2018.
Com a aprovação da PSR-7 e PSR-15 começou a chover frameworks e microframeworks que fornece suporte a middlewares. Mas o que são? Onde vivem? O que fazem? Essas e outras perguntas serão respondidas nessa apresentação!
Link do exemplo:
https://github.com/andersonluciano/api-middlewares-talk
Link Rest Hero:
https://github.com/andersonluciano/rest-hero
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
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
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
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?
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