Mongo NYC PHP Development
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mongo NYC PHP Development

on

  • 7,571 views

 

Statistics

Views

Total Views
7,571
Views on SlideShare
6,133
Embed Views
1,438

Actions

Likes
2
Downloads
84
Comments
0

17 Embeds 1,438

http://www.lightcubesolutions.com 956
http://jeltz.lightcube.us 204
http://www.slideshare.net 115
http://www.joyceleong.com 60
http://www.lightcube.us 57
http://lightcube.us 17
http://lanyrd.com 13
http://www.linkedin.com 3
http://ns2.lightcubesolutions.com 2
http://jeltz.lightcubesolutions.com 2
http://lightcubecanada.com 2
http://bryancollier.com 2
http://webcache.googleusercontent.com 1
http://www.lightcubecanada.com 1
http://50.57.66.198 1
http://translate.googleusercontent.com 1
https://duckduckgo.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Mongo NYC PHP Development Presentation Transcript

  • 1. MongoNYC - PHP Development With MongoDB Presented By: Fitz Agard - LightCube Solutions LLC May 20, 2010
  • 2. Introductions - Who is this guy? { “name”: “Fitz Agard”, “description”: [“Developer”,”Consultant”,”Data Junkie”, “Educator”, “Engineer”], “location”: “New York”, “companies”:[ {“name”: “LightCube Solutions”, “url”: “www.lightcubesolutions.com”} ], “urls”:[ {“name”: “LinkedIn”, “url”: “http://www.linkedin.com/in/fitzagard”}, {“name”: “Twitter”, “url”: “http://www.twitter.com/fitzhagard”} ], “email”: “fhagard@lightcube.us” } (If the above formatting confused you please see - http://json.org/)
  • 3. Yankee Stadium Get People In Make the Most of their Time Get People Out Safely
  • 4. Web-Based Applications 1. Get Data In 2. Make the most of the data 3. Get the data out safely
  • 5. Does your PHP code work well with this?
  • 6. How about this?
  • 7. Why PHP Developers Should Use MongoDB? Database Reasons • Document-oriented storage - JSON-style documents with dynamic schemas offer simplicity and power. • Full Index Support - Index on any attribute. • Replication & High Availability - Mirror across LANs and WANs. • Auto-Sharding - Scale horizontally without compromising functionality. • Querying - Rich, document-based queries. • Fast In-Place Updates - Atomic modifiers for contention-free performance. • Map/Reduce - Flexible aggregation and data processing. • GridFS - Store files of any size.
  • 8. Why PHP Developers Should Use MongoDB? PHP Reasons OO AD P UT RAD AOP
  • 9. Why PHP Developers Should Use MongoDB? PHP Reasons Object elopm ent Orient ed e Dev Progra A gil mming st ing nit Te U Rapid Aspect Oriented Aplic Deve ation Development lopm ent
  • 10. Why PHP Developers Should Use MongoDB? The KISS Method
  • 11. Use Case - eCommerce
  • 12. Imagine the SQL (not PHP) code you would have to write to figure out product details.
  • 13. Simple and Flexible http://kylebanker.com/blog/2010/04/30/ mongodb-and-ecommerce/
  • 14. Mongo and PHP in a Nutshell http://us.php.net/manual/en/book.mongo.php Common Methods Conditional Operators • find() • $ne • findOne() • $in • save() • $nin • remove() • $mod • update() • $all • group() • $size • limit() • $exists • skip() • $type • ensureIndex() • $gt • count() • $lt • ...And More • $lte • $gte
  • 15. Don’t you find it strange we haven’t talked about PHP yet?
  • 16. Check out all the open PHP projects!
  • 17. phpMoAdmin Eric David Benari - support@phpMoAdmin.com • Nothing to configure - place the moadmin.php file anywhere on your web site and it just works! • Fast AJAX-driven XHTML 1.1 interface operates consistently in every browser! • Self-contained in a single 90kb file! • Works on any version of PHP5 with the MongoDB NoSQL database & Mongo PHP driver installed and running. • Option to enable password-protection for one or more users; to activate protection, just add the username-password(s) to the array at the top of the file. • E_STRICT PHP code is formatted to the Zend Framework coding standards + fully-documented in the phpDocumentor DocBlock standard. • Instructional error messages - phpMoAdmin can be used as a PHP-Mongo connection debugging tool • All textareas can be resized by dragging/stretching the lower-right corner. • Multiple design themes to choose from • Free & open-source! Released under the GPLv3 FOSS license!
  • 18. ActiveMongo Cesar D. Rodas- crodas@php.net • Handle MongoDB connection, connecting once when it is needed • Define a Collection as a class • Abstracts iteration over a dataset • Efficient save() which creates or updates efficiently (using $unset, $set) a document • Provides simple queries interface • Use of MongoCollection for complex queries in sub-classes • Delete current object, Drop() table • Support filtering per property • Support for efficient updates on nested documents • Dynamic References (AKA, save a query to execute later)
  • 19. Let’s talk about PHP Frameworks that Support MongoDB
  • 20. Let’s Pick a Framework and Use it with MongoDB
  • 21. +
  • 22. • Integrated Unit Testing (speed, quality) [thank you: closures, iterators] • Aspect Inspired Filter System (flexibility) [thank you: closures, lambdas, iterators] • Document Oriented Data Sources (speed, flexibility) [thank you mongodb] • Automatic output escaping (quality) [thank you: stream wrappers] • Extensible plugin support (flexibility) [thank you: namespaces] • Static Models with Object Oriented Results (speed, flexibility) [thank you: late static binding, iterators] • More, More, More.... http://lithify.me
  • 23. Let’s Make Use of the MVC
  • 24. Your Connection
  • 25. Your Connection Use This
  • 26. Your Connection Not This
  • 27. Setup Your Model This will setup your mongodb collection
  • 28. Setup Your Views index.html.php add.html.php
  • 29. Last But Not Least - The Controller
  • 30. Yay!
  • 31. It Worked!
  • 32. What happens when we need to extend our Blog? Let’s add a Tag!
  • 33. Normally we would touch this!
  • 34. = Dynamic Schema
  • 35. Just Change Your Views index.html.php add.html.php
  • 36. Just Change Your Views index.html.php add.html.php
  • 37. What else can I do with MongoDB and PHP?
  • 38. Cursors MongoDates Indexes MapReduce ...Just to name a few... Sharding Exceptions MongoBinData MongoCode MongoRegex
  • 39. No more time. Go here for more: http://us.php.net/manual/en/book.mongo.php http://www.mongodb.org http://www.lightcubesolutions.com http://lithify.me
  • 40. { “type”: “Conclusion”, “date”: new Date('05-21-2010'), “comments”: [“Thank You”,”Have Fun Developing”], “location”: “New York”, “speaker”: “Fitz H. Agard”, “contact”: “fhagard@lightcube.us” }