ADLER MEDRADO
FRANCISCO BELTRÃO – ABRIL - 2014
Apresentação
● Programador, Arquiteto de Software,
Consultor, Instrutor, DevOps
● ZCE PHP 5, PHP 5.3, Zend Framework
● Co-...
Do que se trata esta palestra?
Como o PHP (e a maioria das
linguagens para web) funcionam ?
• Request / Response
• Para cada requisição, uma nova thread ...
Blocking I/O
Non-Blocking I/O
Outras linguagens tinham sua
implementação de “non-blocking
I/O”. Menos o PHP.
EventMachine
Akka I/O
Até agora
http://reactphp.org
O que é o ReactPHP
● É uma biblioteca PHP, de baixo nível, para
desenvolvimento baseado em eventos.
● É facilmente extensí...
Reactor Pattern - Vantagens
● Design Pattern para manipulação de eventos
● Sistemas baseados no Reactor Pattern
normalment...
Reactor Pattern - Limitações
● É mais difícil de debugar do que uma aplicação
'convencional'
● No caso do ReactPHP e Node....
Event Loop
● O Core é um event-loop, que provê
funcionalidades de baixo nível como abstração
de streams e sockets.
● O Eve...
Componentes Disponíveis
● Cache Component
●
Child Process Component
● Dns Component
●
EventLoop
●
Http
●
HttpClient
●
Sock...
Quais tipos de situações em que o
ReactPHP pode ser usado?
● Queue
● Comunicações
● Transferência de arquivos
● Implementa...
Por que usar ReactPHP se já
existem bibliotecas consolidadas
como node.js ?
● Você já possui uma grande base de código
PHP...
Instalação
http://getcomposer.org
{
"require": {
"react/react": "0.5.*@dev"
}
}
Exemplo 1:
Web Server Simples
Exemplo 2:
Simples HTTP Client
Exemplo 3:
Chat – Telnet / Netcat
Bindings e Projetos baseados no
ReactPHP
'
PHP-AR-DRONE
Ratchet – Websockets Server
Redis Client
DNODE Bindings
ZeroMQ
Perguntas ?
Obrigado e até a próxima
● http://adlermedrado.com.br
● @adlermedrado
● http://github.com/adlermedrado
Upcoming SlideShare
Loading in...5
×

Phpreact flisol-fb-2014

443

Published on

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

No Downloads
Views
Total Views
443
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
5
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Phpreact flisol-fb-2014

  1. 1. ADLER MEDRADO FRANCISCO BELTRÃO – ABRIL - 2014
  2. 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. 3. Do que se trata esta palestra?
  4. 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. 5. Blocking I/O
  6. 6. Non-Blocking I/O
  7. 7. Outras linguagens tinham sua implementação de “non-blocking I/O”. Menos o PHP. EventMachine Akka I/O
  8. 8. Até agora http://reactphp.org
  9. 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. 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. 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. 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. 13. Componentes Disponíveis ● Cache Component ● Child Process Component ● Dns Component ● EventLoop ● Http ● HttpClient ● Socket ● SocketClient ● Stream ● Promises
  14. 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. 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. 16. Instalação http://getcomposer.org { "require": { "react/react": "0.5.*@dev" } }
  17. 17. Exemplo 1: Web Server Simples
  18. 18. Exemplo 2: Simples HTTP Client
  19. 19. Exemplo 3: Chat – Telnet / Netcat
  20. 20. Bindings e Projetos baseados no ReactPHP ' PHP-AR-DRONE Ratchet – Websockets Server Redis Client DNODE Bindings ZeroMQ
  21. 21. Perguntas ?
  22. 22. Obrigado e até a próxima ● http://adlermedrado.com.br ● @adlermedrado ● http://github.com/adlermedrado
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×