Your SlideShare is downloading. ×
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Phpreact flisol-fb-2014

350

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
350
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
3
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ADLER MEDRADO FRANCISCO BELTRÃO – ABRIL - 2014
  • 2. Apresentação ● Programador, Arquiteto de Software, Consultor, Instrutor, DevOps ● ZCE PHP 5, PHP 5.3, Zend Framework ● Co-Fundador PHP-DF ● Sempre que possível 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 requisição, uma nova thread é criada • Se houver conexão com banco de dados ou outro tipo de interação com I/O, esta operação é realizada antes de ser feito o response
  • 5. Blocking I/O
  • 6. Non-Blocking I/O
  • 7. Outras linguagens tinham sua implementação 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 nível, para desenvolvimento baseado em eventos. ● É facilmente extensível, 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 manipulação de eventos ● Sistemas baseados no Reactor Pattern normalmente são single-threaded ● Separa código específico de aplicação do da implementação do reactor ● Oferece maior capacidade para concorrência da aplicação sem adicionar a complexidade do uso de multi-threading
  • 11. Reactor Pattern - Limitações ● É mais difícil de debugar do que uma aplicação 'convencional' ● No caso do ReactPHP e Node.js (as únicas que já trabalhei) é necessário 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 nível como abstração de streams e sockets. ● O Event Loop é a implementação do design pattern Reactor ● Permite que o programa seja executado por uma grande quantidade de tempo
  • 13. Componentes Disponíveis ● Cache Component ● Child Process Component ● Dns Component ● EventLoop ● Http ● HttpClient ● Socket ● SocketClient ● Stream ● Promises
  • 14. Quais tipos de situações em que o ReactPHP pode ser usado? ● Queue ● Comunicações ● Transferência de arquivos ● Implementação de funcionalidades que são executadas como “cronjobs” ● Etc.
  • 15. Por que usar ReactPHP se já existem bibliotecas consolidadas como node.js ? ● Você já possui uma grande base de código PHP existente? ● Nem todos os servidores disponibilizam o node.js ● Você domina PHP? Diga-me um porquê para trocar o certo pelo duvidoso
  • 16. Instalação 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 próxima ● http://adlermedrado.com.br ● @adlermedrado ● http://github.com/adlermedrado

×