This page is the home of slides i used for my various talks at conferences around the world.
They are available in one or more formats as shown below. When available it is best to view
the slides in Microsoft PowerPoint format which might require that you download the
PowerPoint 2003 viewer here.

Marcus BörgerJohannes SchlüterWorst PHP PracticePHP Quebec 2009Fri, 6th March 2009, 75minMontreal, Canada
By now you all know what is new, what is hip and what you should be doing. But
do you know what you shouldn't be doing? In this talk we discuss and analyze
worst development practices. See Johannes and Marcus, ttwo of the more
known core developers open up the gory details of their encounters.

Marcus BörgerJohannes SchlüterPHP Extension WritingPHP Quebec 2009Wed, 4th March 2009, 75minMontreal, Canada
In this brief session you will get a glimpse of the inner workings of the engine
and a headstart into exension writing. While the session is short, the slides will
get you pretty far. Along the way, you'll also understand the engine better, and
with that knowledge in mind you will be able to write faster PHP code.

Marcus BörgerObjects for the massesPHP Quebec 2009Wed, 4th March 2009, 150minMontreal, Canada
PHP has become an extremely powerful web development platform, and since PHP 5
it supports a pretty good and capable object model. This allowed the design of
high quality Frameworks such as the eZ components or the Zend Framework. But
before you can start using them, you might want to learn a bit more about OOP.
This tutorial is an in depth introduction to object oriented and pattern based
programming using PHP 5. You will learn everything necessary to write your own
cutting edge components and applications - and of course how to use and extend
components from other people or companies. You will learn how and when to use
objects as well as when not to use them. And of course we don't stop before we
have heard about itertors.

For the first time, Marcus Böger and further IT-experts are going to
lead the PHP Code Camp. The Code Camp starts right after the Power Workshops on
Nov. 5 at 4.30 p.m. and ends around 9 p.m.. To leave nothing to be desired we
are going to take liberties with closing time. Register in time as attendance
is limited to 35 persons. And don't forget to bring your laptop!

Many Users today rely on PHP for all kinds of web applications. However,
there are legacy systems and others unequaled by PHP. This is excactly where
our adventure begins. During the Code Camp, we are first going to discuss PHP
basics from the structure of extensions to sample functions. That part should
not exceed one hour. Then we are going to deal with object orientation by
studying an example of a complete, implemented extension - a plain and simple
extension with nothing that complicates the code.

Delicious pizza and beer will accompany the subsequent discussions and
remaining questions will be answered. You might want to test new ideas?
IT-profs Marcus Börger and Johannes Schlüter are going to
provide assistance. Until the end of the day you will be able to write the
functions that you always have missed and to install your company's backend
like nobody else does. Last but not least, core developers will perform live
coding. Big enough displays will allow for a good sight.

PHP has reached a wide range of users and today suits any kind of web
application. However, from time to time there is a legacy system or private
system you cannot reach from within PHP. This is where our adventure starts.
PHP is one of the easiest systems to interface with and to develop extensions
for. Yet the extension API is complex in that you need a complete understanding
of the PHP life cycle, refcounting, and other issues that go way beyond memory
management to write a really good extension. In this full day tutorial, 3 of
the most active core developers of PHP - Marcus Boerger, Wez Furlong, and Sara
Golemon - will share their knowledge and get you started at coding right away.
The tutorial will give you an in depth understanding of the PHP engine and its
runtime. It will also cover streams, objects, iterators and give you a heads
up on upcoming unicode support in PHP 6. All this will be done by explaining
a demo extension that you can experiment with yourself. You, of course, should
have a background in C coding and also have a need to do something that PHP
today cannot do or doesn't allow you to do in the way you like.

PHP has reached a wide range of users and today suits any kind of web
application. However, from time to time there is a legacy system or private
system you cannot reach from within PHP. This is where our adventure starts.
PHP is one of the easiest systems to interface with and to develop extensions
for. Yet the extension API is complex in that you need a complete understanding
of the PHP life cycle, refcounting, and other issues that go way beyond memory
management to write a really good extension. In this full day tutorial, 3 of
the most active core developers of PHP - Marcus Boerger, Wez Furlong, and Sara
Golemon - will share their knowledge and get you started at coding right away.
The tutorial will give you an in depth understanding of the PHP engine and its
runtime. It will also cover streams, objects, iterators and give you a heads
up on upcoming unicode support in PHP 6. All this will be done by explaining
a demo extension that you can experiment with yourself. You, of course, should
have a background in C coding and also have a need to do something that PHP
today cannot do or doesn't allow you to do in the way you like.

SPL aka the Standard PHP Library offers a lot of helpful toys to play around
with. The extension is continuously growing as well as its userbase is growing.
The talk will introduce a few basics for the SPL beginners and then head towards
the new stuff and new ideas to use it.

PHP is developing quite fast, so are your applications. And most often there is
no time for complex testing using overbloated test frameworks like unit testing
and whatnot. On the other hand, tests are necessary to get an application - as
well as PHP itself - stable and secure. This tutorial will introduce the phpt
test script - yes, a single test script written in PHP. Easy enough for everyone
to use. This is also the easiest way to help develop PHP. After you got started
with testing, the tutorial will introduce the more complex test suits that offer
a bunch of nice interactions that make the handling of your test suite much easier.

PHP has become an extremely powerful web development platform and since PHP 5
it supports a pretty good and capable object model. This allowed the design
of high quality Frameworks such as the eZ components and Zend Framework. But
before you can start using them, you might want to learn a bit more about OOP.
We will start with all stuff you can do with the lot of new keywords. We also
don't hesitate to get a feeling for exception usage and get a glimpse look at
what iterators are.

SPL aka the Standard PHP Library offers a lot of helpful toys to play around
with. The extension is continuously growing as well as its userbase is growing.
The talk will introduce a few basics for the SPL beginners and then head towards
the new stuff and new ideas to use it.

PHP is developing quite fast, so are your applications. And most often there is
no time for complex testing using overbloated test frameworks like unit testing
and whatnot. On the other hand, tests are necessary to get an application - as
well as PHP itself - stable and secure. This session will introduce the phpt test
script - yes, a single test script written in PHP. Easy enough for everyone to
use. This is also the easiest way to help develop PHP.

PHP is developing quite fast, and so are your applications. Most often there
is no time for complex testing in the overbloated test frameworks like unit
testing and whatsoever. On the other hand tests are necessary to get an
application as well as PHP itself stable and secure. This session will
introduce the php test script - yes a single test script written in PHP.
Easy enough for everyone to use.

Right after last year's success, the two PHP Core devs Marcus Börger
and Sara Golemon and further IT-experts are going to lead the PHP Code Camp.
The Code Camp starts right after the Power Workshops on Nov. 6 at 4.30 p.m.
and ends around 9 p.m.. To leave nothing to be desired we are going to take
liberties with closing time. Register in time as attendance is limited to 35
persons. And don't forget to bring your laptop!

Many Users today rely on PHP for all kinds of web applications. However,
there are legacy systems and others unequaled by PHP. This is excactly where
our adventure begins. During the Code Camp, we are first going to discuss
PHP basics from the structure of extensions to sample functions. That part
should not exceed one hour. Then we are going to deal with object orientation
by studying an example of a complete, implemented extension - a plain and
simple extension with nothing that complicates the code.

Delicious pizza and beer will accompany the subsequent discussions and
remaining questions will be answered. You might want to test new ideas?
Until the end of the day you will be able to write the functions that you
always have missed and to install your companyi's backend like nobody else
does. Last but not least, core developers will perform live coding. Big
enough displays will allow for a good sight.

PHP can do a lot, but it can't do it all. Sometimes you
need access to a third-party library, or you need to speed up some code,
or you just want to do something with the language that no one's thought
of before. This half-day workshop will take you through a detailed look at
the internals of PHP and introduce you to its rich, but daunting extension
API. Workshop will begin with attendees building a simple ready-made
extension skeleton. The base portions of the API will be explored by
adding pieces to this base extension until simple variables, memory
management, request lifecycles, and function implementations have
been covered. From here audience interest will direct the topic of choice
(e.g: Arrays, Resources, Objects, Itterators, Streams, PDO Drivers,
Configuration/Linking, etc).

PHP has become an extremly powerfull web development platform and since PHP 5
it supports a pretty good and capable object model. This allowed the design
of high quality Frameworks such as the eZ components or the Zend Framework. But
before you can start using them you might want to learn a bit more about OOP.
This tutorial is an indepth introduction to object oriented and pattern based
programming using PHP 5. You will learn everything neccessary to write your own
cutting edge components and applications and of course how to use and extend
components from other people and companies. You will learn how and when to use
objects as well as when not to use them. And we don't stop before we heared
about itertors.

PHP has become an extremly powerfull web development platform and since PHP 5
it supports a pretty good and capable object model. This allowed the design
of high quality Frameworks such as the eZ components. But before you can start
using them you might want to learn a bit more about OOP. We will start with
all stuff you can do with the lot of new keywords

If you think that OOP in PHP 5 is nothing more than a handful of new
keywords and passing objects by reference, you need to attend this tutorial!

Presented by Marcus Boerger, the architect of the Standard PHP Library
(SPL), this three-hour seminar examines the new object-oriented architecture
of PHP 5 in depth, and shows you how to take advantage of some of the new
advanced features, such as:

You ever had the feeling that DOM is overkill and you cannot work with SimpleXML
because on the one hand it is too simple and on the other hand you still don't
get it to work. No problem - XmlReader is the way out. It is much more flexible to
use and typically through its enourmous flexibility the much better solution and
last but not least by that much easier to apply.

If you got stuck with writing your XML you might try xmlWriter which this
session also introduces briefly.

This workshop gives you an indepth understanding of the gifts the Standard PHP
Library has to offer. It will explain to you the way it works and how everything
plays together nicely. You will be seeing not only theory stuff but lots and
lots of examples. You will deal with iterators - of course - but in this
workshop you will finally see the light. Getting to understand and apply them
as well as getting a feeling what it's all about and what it's all for.

For the first time, Marcus Böger and further IT-experts are going to
lead the PHP Code Camp. The Code Camp starts right after the Power Workshops on
Nov. 7 at 4.30 p.m. and ends around 9 p.m.. To leave nothing to be desired we
are going to take liberties with closing time. Register in time as attendance
is limited to 35 persons. And don't forget to bring your laptop!

Many Users today rely on PHP for all kinds of web applications. However,
there are legacy systems and others unequaled by PHP. This is excactly where
our adventure begins. During the Code Camp, we are first going to discuss PHP
basics from the structure of extensions to sample functions. That part should
not exceed one hour. Then we are going to deal with object orientation by
studying an example of a complete, implemented extension - a plain and simple
extension with nothing that complicates the code.

Delicious pizza and beer will accompany the subsequent discussions and
remaining questions will be answered. You might want to test new ideas?
IT-profs Marcue Börger and Johannes Schlüter are going to
provide assistance. Until the end of the day you will be able to write the
functions that you always have missed and to install your company's backend
like nobody else does. Last but not least, core developers will perform live
coding. Big enough displays will allow for a good sight.

PHP is probably the most easily extensible language in use today. There
are a large array of C-based extensions available for use with PHP. Companies
often build custom extensions to provide unique functionality or to integrate
with legacy systems still in use. This tutorial session will walk attendees
step-by-step through the process of building PHP extensions and demonstrate
how extensions can be used to solve problems that extend beyond the standard
capabilities of PHP.

In this tutorial you will learn everything you must know to develop cutting
edge object oriented PHP 5 applications. You will learn how and when to use
objects as well as when not to use them.

This tutorial gives you an introduction to object oriented and pattern based
application development. You will see everything PHP supports in this area
starting with standard objects over exceptions to iterators and much more.
This all results in an indepth understandng of PHP 5's object model. We will
learn about all the language features and all the new extensions that make use
of object oriented programming. Namely thses are SPL the Standard PHP Library
that gives you objects and interfaces for several basic problems. PDO which is
the new way of accessing databases. And of course we will not stop with looking
at all the XML extensions. This way you will find yourself able to use PHP 5.1
the right way.

Introduced with PHP 5.1, the PHP Database Objects (PDO) allow a fast and unique
way to access most of the important databases, and others will follow soon. In
several articles on the Internet and magazines you have have already heard it
all, you think? This session will show you the advanced techniques that allow
very fast object oriented database operations, a few of which are not so easy,
or not possible at all, in other data access api's.

In this talk you will learn all about the magic that sneaked into PHP
with the introduction of Zend engine 2. You will learn how to utilize
those new techniques and how to benefit from them. This captures the
most prominent achievements Iterators and Array overloading as well as
semi automatic string conversion, exception handling and other tricks.

After you learned about the basics we will dive into example details
to equip you with all the knowledge to take advantage of switching
towards PHP 5 and using SPL aka Standard PHP Library. Using this
brand new extension gives you functional programming - and having
that can be a very great advantage. One of which is being able to
create algorithms independent from the data to be able to reuse the
algorithm without touching it.

These slides actually contain more then ten additional slides i did not use
in the presentation and the slides also refer to those two debug sessions i
prepared for other conference sessions on SPL related topics. It is a good idea
to use those too since they make a lot of things clearer - since as always the
time was to short or the topic to huge to give a detailed introduction on
everything.

However these slides contain enough examples that let you easily understand
the ideas behind overloading the engine and how SPL hooks on by its interfaces
and classes.

This session will equip you with all the knowledge to take advantage
of switching towards PHP 5 and using SPL aka Standard PHP Library.
You will learn about the new exception hierarchy introduced with PHP
5.1. I will explain the error situations each exception class adresses.
This way you will learn how to use exceptions correctly and how and
when to extend built in exceptions. You will also learn how __autoload
can be very counter productive and how SPL can help. Last but not least
you will learn how to take advantage of the SPL Iterators by example.
And finally the session will end with some insight about the shining
bright future of SPL.

In this talk you will leaarn everything about how to increase the speed
of your PHP application. out will learn how to build your own fast PHP.
You will understand the general PHP architecture and especially how to
deal with references.

Iterators offer a way to access data elements from a datapool one after
another. While this sounds very boring it offers a lot. On the one hand
it allows to lazy initialize the data element when they are needed and
not when the first element is needed and only for the time the elements
are needed and not until the last element is needed. And on the other
hand iterators also allow to encapsulate algorithmns. That means they
bring the functional paradigm to PHP. In this talk you will learn how to
utilize iterators and how to stick them together like a puzzle in order
to separate different algorithm steps to use multiple algorithms for the
same data. For example this allows to apply multiple independent filters
to the same data. Finally this talk will show you some iterator
implemented algorithms from the PHP 5 builtin SPL extension.

In this talk you will leaarn everything about how to increase the speed
of your PHP application. out will learn how to build your own fast PHP.
You will understand the general PHP architecture and especially how to
deal with references.

In this session you will learn how to implement an object oriented PHP 5
extension by example of a real class you can experiment with. The session
will capture everything that you must know to be able to implement your
own classes. By being able to do so you can heavily improove the efficency
of your applications - provided you have some expirience writing c code.

Iterators are an easy programming pattern that are mainly used for lazy
initialization of collectable data to save memory usage. In this session
you will learn the basics of iterators as implemented in PHP 5. After that
you will learn about extension SPL aka Standard PHP Library which provides
you with a set of more complex iterator based algorithmns and how to take
your advantage from them. Since other extension implement iterators too
this session enables you to do a lot of laziness with data stored in XML
or relational databases.

PHP 5 is the next iteration of PHP. In this part
two of PHP 5's core developers will provide a
point by point overview of the changes in PHP 5,
and go over how the new infrastructure works.
This session will serve as the jumping off point
for the 2 full days of PHP 5 tutorials.

Part 2: Using new OO features in PHP 5 scripts

In this part we will review the PHP 4 OO model
and introduce the new PHP 5 OO concepts:

visibility for properties and methods

abstract methods and abstract classes

interfaces

final methods and classes

static properties and methods

constants

exceptions

reflection_api

After you learned about all these new features,
their functionality and how to use them for your
advantage you will be ready to move from PHP 4 to
PHP 5. Indded you will be able to use all the new
things in your applications and are ready to
learn about the new extensions in the following
parts.

Part 3: PHP 5's new extensions

With PHP 5 we will have a lot of new extensions
which will all make use of the new OO model.

MySQLi

a new way to connect to MySQL v4 DBs

PDO

the OO way to abstract data handling

PHILI

the next step in PHP imaging

SPL

a set of standard classes

SQLite

turns PHP into a database engine

For each of those new extensions we will explain
what they do. We will show some examples that
demonstrates the 'benefit' and 'howto' of these
extensions.

Part 4: PHP 5 & XML

With PHP 5, XML support in PHP has been completely
redone featuring a new backend based on the popular
libxml2 library. In this 3 hour session we'll go
into the structure of the new XML architecture, and
then dive into each component in-depth, comparing
it to their PHP 4 counterparts. By the end of this
session you'll come away with a good idea of how
PHP 5's XML support works and the future of PHP and
XML.