View Larger Map


Courtyard Milwaukee Brookfield
16865 West Bluemound Road
Brookfield, WI 53005




Ten Steps to Zend Framework Mastery - Milwaukee, Wisconsin

When: Saturday February 19, 2011 9:00 AM - 5:00 PM

Price: Only $100.00!

Class Size: This event is sold out!
Contact Jason at to be put on the wait list. You will also be given preferred registration status for the next Milwaukee Zend Framework workshop.

Course Summary

In a hurry to become a proficient Zend Framework developer? Join Zend Framework expert and bestselling author Jason Gilmore in a day long workshop introducing you to the many features of this powerful web development solution.

All attendees will receive:

  • World class instruction in a comfortable classroom setting
  • All of the source code and slides used throughout the workshop
  • Free catered lunch from Cosi and refreshments throughout the day
  • An exclusive discount code for the e-book version of Beginning PHP and MySQL, Fourth Edition for just $25.

Bring your laptop, as this will be a hands-on workshop! All students will have access to a power outlet, and it is strongly suggested that your laptop already has PHP, MySQL, Apache, and the Zend Framework installed prior to the class. If you are having trouble with installation, Jason will provide you with free assistance over e-mail or the phone ahead of the class.

Course Details

Broken into ten distinct steps, this workshop was created expressly to provide you with a well-rounded understanding of the Zend Framework. By the workshop’s conclusion, you’ll not only understand how to create powerful Zend Framework-driven websites, but also know how to integrate effective tools such as Phing and PHPUnit into your Zend Framework development strategy.

Over the course of the day we’ll cover ten fundamental topics, including:

Plenty of time is set aside for questions!

Step #1. Creating your First Zend Framework Project

One of the hardest parts of beginning any new website project is deciding how to organize the various project assets, including not only the PHP code, but also the page layouts, images, and configuration data. The Zend Framework removes these tedious decisions altogether by providing you with a set of default answers to these questions in addition to a command-line interface (CLI) called Zend_Tool which you can use to quickly generate the project directory structure and code required to create a new Zend Framework-powered website.

In this section I’ll show you how to use Zend_Tool to create a new Zend Framework application, and provide an overview of the typical Zend Framework project structure.

Step #2. Managing Project Layouts and Views

Cleanly separating your application’s logic and presentation is crucial to its long-term success, particularly when the application is subject to ongoing development by multiple team members including programmers and designers. The Zend Framework provides an impressively simple and efficient way to separate the logic and data, and allowing you to manage the presentation in terms of a global website template, page-specific templates, and within special encapsulated bits of code known as view helpers which can be repeatedly used throughout the application. In this step I’ll introduce you to all of these features and more.

Step #3. Effective Configuration Management Using Zend_Config

Web applications are typically created, maintained and deployed within the confines of a rigorously defined project lifecycle, with stages in the lifecycle often referred to as “development”, “testing”, “staging” and “production”. Each stage often requires its own set of configuration data, such as stage-specific database connection parameters. The Zend Framework provides an extremely valuable component named Zend_Config which allows you to easily manage this stage-specific configuration data, and additionally easily declare which stage is currently enabled. In this step I’ll show you how to manage your application configuration data, switch your application from one stage to another, and retrieve this configuration data as needed from within your application controllers.

Step #4. Model-driven Forms Processing Using Zend_Form

Because the success of so many websites depends upon the user interaction via web forms, it is crucial that you create forms which accept, validate, and process user data in a coherent way. The Zend Framework’s Zend_Form component provides a very compelling model-driven solution for managing your forms, however it remains one of the framework’s most confusing features. In this section I’ll dispel the confusion, offering insight into how to master this powerful component and create rock-solid web forms.

Step #5. Database Interaction Using Zend_Db and Doctrine

Even the most trivial website relies upon a database for content management, yet many developers find database integration an annoying and inconvenient experience. The Zend Framework’s Zend_Db component eliminates a great deal of the hassle by providing an object-oriented interface to your database tables, allowing you to select, insert, update, and delete data using the very same object-oriented PHP syntax you use for other tasks, rather than embed messy SQL code alongside PHP. In this step I’ll introduce you to Zend_Db, and provide several examples demonstrating how easy it is to manipulate the underlying database using Zend_Db’s convenient interface.

I’ll also show you how to integrate the powerful Doctrine ORM into your Zend Framework applications, which although at this time is not an official Zend Framework feature, is slated to be integrated into the framework in a future release.

Step #6. Test-driven Development Using PHPUnit and Zend_Test

There are few web development tasks more tedious and time consuming than repeatedly completing and submitting form data in order to make sure a form is working properly. The process becomes even more tiresome as additional form features are added over time, requiring you to complete testing anew.

Zend Framework developers can do away with these sorts of manual tests forever by employing an automated approach involving PHPUnit and the Zend_Test component! In this step I’ll show you how to write and execute automated tests which can not only test your web forms, but also verify controller and action existence, inspect pages to ensure specific page elements exist, and ensure other key features are working properly.

Step #7. Web Services Integration

One of the Zend Framework’s most compelling features is its vast support for third-party web services, including those offered by, Google, Microsoft, Twitter, and Yahoo!. In this step I’ll talk about this support, and offer several examples involving retrieving product information from the Amazon Product Advertising API, and sending messages to Twitter.

Step #8. jQuery and Ajax Integration

JavaScript- and Ajax-enhanced user interfaces are an integral part of any modern web application, and so this step focuses on how to integrate the powerful jQuery JavaScript framework and its companion Ajax features into your Zend Framework application.

Step #9. Effective Zend Framework Project Deployment Using Phing

Although the Zend Framework offers a number of great features which facilitate the management of stage-specific configuration data, you’ll still need to complete several crucial steps when migrating a website to the production server. Automating these steps is strongly recommended in order to ensure nothing is overlooked or incorrect. Many PHP developers use the Phing build tool to automate these tasks, and in this step I’ll introduce you to Phing and show you how to create Phing tasks which can automate practically every aspect of the deployment process.

Step #10. Executing Zend Framework-driven Command Line PHP Scripts

Most modern websites rely upon a variety of periodic background processing scripts. For instance, one such script might interact with a third-party web service on a nightly basis to update local catalog information such as product pricing data. In this step you’ll learn how to create command-line scripts which can not only use Zend Framework components such as Zend_Service_Amazon, but can also plug into the companion application’s configuration data, thereby allowing you to keep your code DRY.

Venue Information

The Courtyard Marriott conference room offers a comfortable learning environment which I have limited to just 15 students in order to provide an optimized instructor-student ratio. Each student will have access to a power outlet.

About the Instructor

W. Jason Gilmore is the author of six books, including the bestselling “Beginning PHP and MySQL, Fourth Edition” (Apress, 2010), “Easy PHP Websites with the Zend Framework” (W.J. Gilmore, LLC, 2009), and “Easy PayPal with PHP” (W.J. Gilmore, LLC, 2009). His writings on PHP and other web technologies have been published within Linux Magazine,, JSMag, and numerous other online and print publications. Over the years, Jason has instructed hundreds of developers in the United States and Europe.

Jason is co-founder of the wildly popular CodeMash Conference (, and was a member of the 2008 MySQL conference speaker selection board.