SlideShare uma empresa Scribd logo
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-Fundador PHP-DF
● Sempre que possível participo de eventos
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 é 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
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í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
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
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
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
Componentes Disponíveis
● Cache Component
●
Child Process Component
● Dns Component
●
EventLoop
●
Http
●
HttpClient
●
Socket
●
SocketClient
●
Stream
● Promises
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.
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
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

Mais conteúdo relacionado

PDF
Entendendo Conceitos Caching com PHP
PDF
Ferramentas Livres Para Desenvolvimento com PHP
PDF
Panorama atual do PHP
PDF
Zend Framework
PDF
Mini Curso Zend Framework
PPTX
Conhecendo o Novo REST Framework
PDF
Javascript por debaixo dos panos
PPTX
Big data da teoria à prática
Entendendo Conceitos Caching com PHP
Ferramentas Livres Para Desenvolvimento com PHP
Panorama atual do PHP
Zend Framework
Mini Curso Zend Framework
Conhecendo o Novo REST Framework
Javascript por debaixo dos panos
Big data da teoria à prática

Mais procurados (20)

ODP
Zend Framework
PDF
Cacheamento Lado Servidor
PDF
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
PPTX
Integrando sua App ao Mundo via REST/JSON
KEY
Desenvolvendo Aplicações com Zend Framework
PDF
Webinar php extreme 5.3
PDF
Prepare-se para o próximo estágio da evolução PHP
PPTX
Unit Test JavaScript
PPTX
9 erros que desenvolvedores Node.js cometem
PDF
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
PPTX
PPTX
Nova Infraestrutura JSON: System.JSON na prática
PPTX
Code Rage Brazil III - Tudo sobre o REST Client Library
PPTX
Javascript por debaixo dos panos
PDF
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
PPTX
PHP Além da universidade
PPTX
Testes com javascript
PPTX
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
PDF
Oficina de PHP - Software Freedom Day Luziânia 2013
PPTX
NodeJS - Tutorial de forma simples e pratica.
Zend Framework
Cacheamento Lado Servidor
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Integrando sua App ao Mundo via REST/JSON
Desenvolvendo Aplicações com Zend Framework
Webinar php extreme 5.3
Prepare-se para o próximo estágio da evolução PHP
Unit Test JavaScript
9 erros que desenvolvedores Node.js cometem
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Nova Infraestrutura JSON: System.JSON na prática
Code Rage Brazil III - Tudo sobre o REST Client Library
Javascript por debaixo dos panos
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
PHP Além da universidade
Testes com javascript
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
Oficina de PHP - Software Freedom Day Luziânia 2013
NodeJS - Tutorial de forma simples e pratica.
Anúncio

Destaque (6)

PDF
Mercado de Trabalho
PDF
Minicurso de PHP Com Ajax
PDF
Webservices
PDF
Tales of the Crypto
PDF
Web 2.0 e RIA com PHP
PDF
Não é Feitiçaria, é Tecnologia
Mercado de Trabalho
Minicurso de PHP Com Ajax
Webservices
Tales of the Crypto
Web 2.0 e RIA com PHP
Não é Feitiçaria, é Tecnologia
Anúncio

Semelhante a Phpreact flisol-fb-2014 (19)

PDF
ReactPHP && programacao assincrona em PHP
PPSX
Cakephp 2.0 - O que mudou
ODP
PHP nas Mídias Sociais
PPTX
Síncrono vs Assíncrono
PDF
Gerenciamento de serviços e eventos em PHP com Zend Framework 2
ODP
Trabalhando com eventos e serviços no Zend Framework 2
PPTX
Panorama atual do PHP
PPTX
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
PDF
PHP de alta performance com RoadRunner
PDF
Frameworks PHP
PPTX
O front-end moderno e sua lib mais popular: React
PPTX
Apresentação da Linguagem de Programação PHP
PDF
PHP Community Spirit
PPT
DOC
Artigo de php
PDF
PHP: Evolução
KEY
Uma visão rápida sobre Nodejs
PDF
Panorama PHP
PPTX
O front-end moderno e sua lib mais popular: React
ReactPHP && programacao assincrona em PHP
Cakephp 2.0 - O que mudou
PHP nas Mídias Sociais
Síncrono vs Assíncrono
Gerenciamento de serviços e eventos em PHP com Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
Panorama atual do PHP
O ecossistema e o estado atual do php - o presente, o passado e o futuro da ...
PHP de alta performance com RoadRunner
Frameworks PHP
O front-end moderno e sua lib mais popular: React
Apresentação da Linguagem de Programação PHP
PHP Community Spirit
Artigo de php
PHP: Evolução
Uma visão rápida sobre Nodejs
Panorama PHP
O front-end moderno e sua lib mais popular: React

Phpreact flisol-fb-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
  • 7. Outras linguagens tinham sua implementação de “non-blocking I/O”. Menos o PHP. EventMachine Akka I/O
  • 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
  • 19. Exemplo 3: Chat – Telnet / Netcat
  • 20. Bindings e Projetos baseados no ReactPHP ' PHP-AR-DRONE Ratchet – Websockets Server Redis Client DNODE Bindings ZeroMQ
  • 22. Obrigado e até a próxima ● http://adlermedrado.com.br ● @adlermedrado ● http://github.com/adlermedrado