Your SlideShare is downloading. ×
Mongo NYC PHP Development
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Mongo NYC PHP Development


Published on

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide

  • 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”: “”} ], “urls”:[ {“name”: “LinkedIn”, “url”: “”}, {“name”: “Twitter”, “url”: “”} ], “email”: “” } (If the above formatting confused you please see -
    • 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 mongodb-and-ecommerce/
    • 14. Mongo and PHP in a Nutshell 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 - • 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- • 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....
    • 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:
    • 40. { “type”: “Conclusion”, “date”: new Date('05-21-2010'), “comments”: [“Thank You”,”Have Fun Developing”], “location”: “New York”, “speaker”: “Fitz H. Agard”, “contact”: “” }