Top Shelf PHP

Location: D135
Average rating: ***..
(3.80, 5 ratings)

Attendee prerequisites for this tutorial are listed below.

This tutorial will cover a number of libraries that are pushing PHP forward to exciting new places. Expect a primer on subject of dependency injection and object composition, followed by introductions to a number of PHP frameworks, libraries and tools including Symfony2, the Doctrine MongoDB ODM, the Twig templating language, the asset management framework Assetic, and PHPUnit. Once these quick tours are done we will demonstrate the rapid development of a sample application the integrates them all.


You should have the following software installed and running on your laptop when you arrive at the tutorial.

  • Apache
  • PHP 5.3
  • pear
  • pecl mongo extension
  • MongoDB
  • Git


If you use Macintosh you can install PHP 5.3 using Homebrew:
Note: this requires that you install Xcode, which should be available on your Mac OS X installation DVD, or as a rather large download from

You can then install PHP with the following command:
brew install —with-intl

You can also use the brew command to install MongoDB and Git:
brew install mongodb git


Download and install Apache:

Windows binaries for PHP are available here:

Instructions for installing MongoDB on Windows can be found here:


Ensure that git is installed via your package manager.

In addition to installing PHP 5.3 for your webserver of choice, be sure to install php5-cli and php5-intl.

MongoDB 1.8, in either binary or packaged form, may be downloaded here:

PECL and PEAR libraries

Install the Mongo driver using PECL:

Install PHPUnit 3.5.14 using PEAR:

Install Behat 2.0 and Mink 1.0 using PEAR:

QUESTIONS for the speaker?: Use the “Leave a Comment or Question” section at the bottom to address them OR email the speaker at kris [dot] wallsmith [at] gmail [dot] com.

Photo of Kristopher Wallsmith

Kristopher Wallsmith


Kris is a member of the Symfony core team, Symfony Guru at OpenSky, and long-time advocate for simple solutions to complex problems. He works from his home office in Portland, Oregon where he and his wife raise their three young children.

Photo of Jeremy Mikola

Jeremy Mikola

Jeremy is an active member of the Symfony2 community and has been a core contributor to the framework since early 2010. He is also involved with numerous other projects: Doctrine MongoDB ODM, Silex micro-framework, Composer (PHP package management) and Imagine (image processing).

Although not a serial speaker, he has had the honor of presenting at Symfony Live Paris and conducting a tutorial at OSCON during 2011. He is currently a lead software engineer with and has previously built great things at OpenSky and InterActiveCorp.

Photo of Dustin Whittle

Dustin Whittle


Dustin Whittle is a developer evangelist at AppDynamics, where he focuses on helping organizations manage application performance. Before joining AppDynamics, Dustin was CTO at Kwarter, a consultant at SensioLabs, and developer evangelist at Yahoo. He has experience building and leading engineering teams and working with developers and partners to to scale up. When Dustin isn’t working, he enjoys flying, sailing, diving, golfing, and traveling around the world. Find out more at

Comments on this page are now closed.


Picture of Jeremy Mikola
Jeremy Mikola
07/28/2011 9:31am PDT

Khaled: I don’t believe anyone from OSCON was recording this, so you’ll have to make do with slides. If there’s any questions, feel free to reach out to one of us.

Khaled Alhourani
07/28/2011 9:29am PDT

Any recordings for this session?

Picture of Jessamyn Smith
Jessamyn Smith
07/28/2011 7:51am PDT

Interesting and informative presentation. Using the USB sticks was a good idea; I recommend doing that first thing next time.

Picture of Shirley Bailes
Shirley Bailes
07/26/2011 2:51am PDT

Chris Jeremy: the slides are available at the top of this page, just above the tutorial description – 2 PDFs. And we’ve just embedded the Slideshare link Jeremy has provided.

Picture of Craig Wright
Craig Wright
07/26/2011 2:47am PDT

This was a great overview of the current smart thinking in the direction of PHP frameworks and testing harnesses. The information will be very helpful for me reviewing our own practices and may even find its way into our development cycle. The only downside was that there was too much material for the time. Thanks Kris, Dustin, and Jeremy!

Picture of Jeremy Mikola
Jeremy Mikola
07/26/2011 2:42am PDT

Chris, Dustin and I uploaded the slides last night, so I’m not sure why they’re not listed here. We’ll ping OSCON about it.

In the meantime, the BDD (Behat and Mink) slides were here:

Chris Berg
07/26/2011 2:30am PDT

Great intro to some exciting things—eager for the slides.

Picture of Jeremy Mikola
Jeremy Mikola
07/13/2011 3:02am PDT

Kurt, we’re waiting for OSCON to update the instructions above, but in the meantime:


  • Ensure that git is installed via your package manager.
  • In addition to installing PHP 5.3 for your webserver of choice, be sure to install php5-cli and php5-intl.
  • MongoDB 1.8, in either binary or packaged form, may be downloaded here:

PECL and PEAR libraries

Picture of Kurt Lakin
Kurt Lakin
07/12/2011 11:55pm PDT

MACINTOSH??? WINDOWS??? Really?!? Is this OS-con, or micro$oft-con…