Your SlideShare is downloading. ×
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
Integrating Node.js with PHP
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

Integrating Node.js with PHP

43,919

Published on

Published in: Technology
1 Comment
25 Likes
Statistics
Notes
No Downloads
Views
Total Views
43,919
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
210
Comments
1
Likes
25
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. Integrating Node.js with PHP Lee Boynton PHPHants March 2013 Meetup
  • 2. So... WTF is Node.js?
  • 3. Server-side JavaScript
  • 4. Its single threaded...
  • 5. ...one process serves multiple clients
  • 6. Apache + mod_php Clients Webserver (Example borrowed from Marc Gears excellent server side scripting smack down)
  • 7. nginx + php-fpmStill pretty similar, there is a pool of available PHP processes
  • 8. Node.js Clients Webserver
  • 9. A simple Node.js webservervar http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type:text/plain}); res.end(Hello Worldn);}).listen(1337, 127.0.0.1);console.log(Server running at http://127.0.0.1:1337/);
  • 10. Why should I use Node.js then?
  • 11. #1 Reason l33tness
  • 12. Use same language on the frontend and backend!
  • 13. Websockets!!!!
  • 14. Websockets● Persistent connection to server via web browser● Low latency● Bi-directional● Much better than XHR long polling (comet)
  • 15. The possibilities...● Games● News feeds● Chat● Real-time applications
  • 16. Awesome! Lets ditch PHP!Or use the right tool for the right job...
  • 17. Reasons to use PHP still● PHP works● Familiarity, maturity● Existing code in PHP● Node still in its infancy (created in 2009) ○ Not as many frameworks, libraries ○ May have to write more code for some basic things ○ APIs may change, not version 1.0 yet
  • 18. Oh yeah, the integrating part... Memcache/redis/ something else Session data Session data PHP Node
  • 19. However...Sessions are serialized by PHP:not|a:2:{i:0;s:4:"easy";i:1;a:1:{s:2:"to";s:5:"parse";}}Easier to parse JSON in Node.js:{"this": {"is": "easier"}}
  • 20. Use my session save handler...On Packagist: lboynton/memcached-json-session-save-handlerOr msgpack: https://github.com/msgpack/msgpack-php● ini_set(session.serialize_handler, msgpack)
  • 21. Quick example... (PHP) // create connection to memcached $memcached = new Memcached(); $memcached->addServer(localhost, 11211); // register handler (PHP 5.3 compatible) $handler = new LboySessionSaveHandler($memcached); session_set_save_handler( array($handler, open), array($handler, close), array($handler, read), array($handler, write), array($handler, destroy), array($handler, gc) ); register_shutdown_function(session_write_close); session_start(); // start using the session $_SESSION[serialisation] = this should be in json;
  • 22. Quick example... (Node.js)1. Get session ID from cookie2. Get session data out of memcached3. Use session data to identify client and send relevant info to their browserSee demo app...
  • 23. Conclusion...● Using Node is fun...● Good way to add real-time functionality to existing website● Can be used for much more
  • 24. Links● http://nodejs.org/● https://npmjs.org/● http://socket.io/● https://packagist. org/packages/lboynton/memcached-json- session-save-handler● https://github.com/msgpack/msgpack-php● https://github.com/msgpack/msgpack-node

×