Download odp - Phpreact flisol-fb-2014

Transcript
  • 1. ADLER MEDRADO FRANCISCO BELTRO ABRIL - 2014

2. Apresentao Programador, Arquiteto de Software, Consultor, Instrutor, DevOps ZCE PHP 5, PHP 5.3, Zend Framework Co-Fundador PHP-DF Sempre que possvel participo de eventos 3. Do que se trata esta palestra? 4. Como o PHP (e a maioria das linguagens para web) funcionam ? Request / Response Para cada requisio, uma nova thread criada Se houver conexo com banco de dados ou outro tipo de interao com I/O, esta operao realizada antes de ser feito o response 5. Blocking I/O 6. Non-Blocking I/O 7. Outras linguagens tinham sua implementao de non-blocking I/O. Menos o PHP. EventMachine Akka I/O 8. At agora http://reactphp.org 9. O que o ReactPHP uma biblioteca PHP, de baixo nvel, para desenvolvimento baseado em eventos. facilmente extensvel, ou seja, voc pode criar seus componentes com base nos componentes existentes no ReactPHP Implementa non-blocking I/O Inspirado em bibliotecas como Twisted, Event Machine e Node.js 10. Reactor Pattern - Vantagens Design Pattern para manipulao de eventos Sistemas baseados no Reactor Pattern normalmente so single-threaded Separa cdigo especfico de aplicao do da implementao do reactor Oferece maior capacidade para concorrncia da aplicao sem adicionar a complexidade do uso de multi-threading 11. Reactor Pattern - Limitaes mais difcil de debugar do que uma aplicao 'convencional' No caso do ReactPHP e Node.js (as nicas que j trabalhei) necessrio reiniciar o servidor em caso de Exceptions. http://en.wikipedia.org/wiki/Reactor_pattern 12. Event Loop O Core um event-loop, que prov funcionalidades de baixo nvel como abstrao de streams e sockets. O Event Loop a implementao do design pattern Reactor Permite que o programa seja executado por uma grande quantidade de tempo 13. Componentes Disponveis Cache Component Child Process Component Dns Component EventLoop Http HttpClient Socket SocketClient Stream Promises 14. Quais tipos de situaes em que o ReactPHP pode ser usado? Queue Comunicaes Transferncia de arquivos Implementao de funcionalidades que so executadas como cronjobs Etc. 15. Por que usar ReactPHP se j existem bibliotecas consolidadas como node.js ? Voc j possui uma grande base de cdigo PHP existente? Nem todos os servidores disponibilizam o node.js Voc domina PHP? Diga-me um porqu para trocar o certo pelo duvidoso 16. Instalao http://getcomposer.org { "require": { "react/react": "0.5.*@dev" } } 17. Exemplo 1: Web Server Simples 18. Exemplo 2: Simples HTTP Client 19. Exemplo 3: Chat Telnet / Netcat 20. Bindings e Projetos baseados no ReactPHP ' PHP-AR-DRONE Ratchet Websockets Server Redis Client DNODE Bindings ZeroMQ 21. Perguntas ? 22. Obrigado e at a prxima http://adlermedrado.com.br @adlermedrado http://github.com/adlermedrado