Your SlideShare is downloading. ×
Mongo NYC PHP Development
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

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”: “” }