Tutorials
Conference tutorials are designed as intensive 3 hour sessions for in-depth and accelerated learning. All tutorials will be presented on Monday, October 17, the day before the conference begins. Separate registration is required for conference tutorials.
PHP Extensions, Why and What?
Derick Rethans
So you've heard that PHP supports extensions. But what are they exactly, what can you do with them, and what can't you do with them? And mostly, why would you or would you not want to spend time writing them? This session will introduce you into what PHP extensions are, and what they can do for you. It will cover cases of when it makes sense to write extensions and which things you need to think of when deciding whether you want to put the effort into writing an extension. The talk then proceeds with a small introduction to the request cycle and PHP's memory management. It mentions which parts of PHP you could override and which parts you can hook into. Because PHP extensions are written in C, attendees to this session should have rudimentary knowledge of C.
Design Patterns in Action 
Stefan Priebsch
thePHP.cc
Design patterns are proven solutions to common coding problems. You probably even know some design patterns, but can you really apply them in praticse? In this workshop, we will solve some interesting, web-related coding problems using design patterns like Command, State, or Strategy. And while we are at it, we discuss best practices, for example composition over inheritances, single responsibility, and separation of concerns. No slides will be shown. All code will be written and explained live instead, taking audience questions and feedback into account.
Beware of the Dark Side, Luke!
Arne Blankerts
thePHP.cc
Somehow you met the impossible deadline, your project is online and you now deserve some time to relax. Other than you and me though, the internet does not sleep and your application is under constant risk of attack. Even without having access to the source code, attackers have their ways to break into applications and steal or modify private information. Switch sides for a day and attack the demo blackbox application! Learn how attackers gather information, exploit vulnerabilities and hijack servers - and what to do to stop them.
Learning CouchDB
Bradley Holt
Found Line
CouchDB is a document-oriented database that uses JSON documents, has a RESTful HTTP API, and is queried using map/reduce views. Each of these properties alone, especially MapReduce views, may seem foreign to developers more familiar with relational databases. This tutorial will teach web developers the concepts they need to get started using CouchDB in their projects. Several CouchDB libraries are available for PHP and we will take a look at the more popular ones.
Doctrine 2
Juozas Kaziukenas
Doctrine is an enterprise object persistence layer for PHP 5.3.2+ that supports persisting PHP objects to relational databases like MySQL, Oracle, etc. and document based storage systems like MongoDB as well. Dive in head first and learn the Doctrine way in this workshop. From basics to best practices, performance optimization and legacy applications migration.
Creating and Using Streams, Filters and Sockets
Elizabeth Marie Smith
OmniTI
Streams are one of the most powerful features of PHP and one of the most underused. Bring your laptop and go on an in-depth look at PHP’s streams layer. We'll examine what they are and how can you use (and abuse) them. Write your own classes to access APIs such as Flickr without any curl, use filters for manipulating data without altering an existing templating system, play with all sorts of PHP transports from FTP to SSH. Learn how to create your own stream wrappers and filters, and even build a socket server. Learn about the differences between socket connections and regular streams. And learn it in a hands on method, actually writing and running code. Please bring something with PHP 5.3 installed and runnable (CLI is good enough). This will have coding exercises!
Zend PHP 5.3 Certification Boot Camp
Christian Wenz
Arrabiata Solutions GmbH
The Zend PHP Certification is the industry standard to test a candidate's knowledge of PHP and to aid employers to select suitable developers. Learn what it takes to become a Zend Certified Engineer (ZCE) by one of the authors of the certification. We will have a look at all topic areas (including the new materia in PHP 5.3 exam), discuss common traps and required knowledge for each of them, and will provide you with background information on the test. The full-day tutorial will feature a number of typical questions that resemble the layout of the actual test questions, giving you a realistic impression of the test itself and aiding you in self-assessing your current PHP knowledge. In addition, you will have the opportunity to take the test right at the conference (limited availability). YOU MUST register separately for the exam PLEASE NOTE: Attending the tutorial does NOT guarantee an exam seating.
PHP Components From Idea To Maturity
Stuart Herbert
In this session, you’ll learn how to create a new PEAR-compatible PHP component from scratch, how to unit test it, how to add it to your continuous integration server, how to publish it via your own PEAR channel, and how to re-use the component in your Zend Framework applications. This session is highly-recommended for anyone looking to combine components and frameworks together to get the best of both worlds. This is an extended version of the 'Maintainable Architectures Using PHP Components' talk I'm giving at #phpnw11.

