Browsers like Internet Explorer 6 are very, very out of date.
Please upgrade, or download Safari, Firefox, Google Chrome or Internet Explorer 9.

Dutch PHP Conference

Join us in Amsterdam for the PHP community's most exciting event!

6, 7 & 8 june 2013, RAI, Amsterdam, NL

Buy Tickets

Build RESTful JSON API's with HAL

Thursday 13:45, track2 Talk level: Intermediate Talk type: In depth

RESTful APIs are the de facto standard for web services today, and JSON is quickly becoming the dominant format. How do you represent hypermedia links, however, so that you can provide users with the next set of actions available? How do you communicate errors? Hypermedia Application Language, or HAL, provides a number of strategies and answers around these questions. In this workshop, we'll look at the various considerations necessary when building RESTful JSON APIs, and how adopting standards outlined by HAL can enable you to build robust APIs for your end users.

Examples will use Zend Framework 2 and modules developed for Zend Framework 2, but the strategies and ideas outlined should be portable to any project.

Code Review for Security

Thursday 09:30, track5 Talk level: Beginner Talk type: Hands on

Imagine the day where you get an email from your CEO: "Our site has been hacked! Millions of user records have been leaked! And we're being sued!"... Unfortunately, that situation appears to be quite common place in the modern world. In the past year alone LinkedIn, Sony, Zappos, Twitter, Apple, Yahoo and LastFM (and a lot more) have compromised, leaking over 100 million user records. How has this become common place? Developers traditionally haven't focused on security (that's someone else's problem, right?)... Wrong! Security is everyone's job!

Come and learn more about how to identify and fix security issues! In this workshop, we'll cover the most dangerous and prevalent security vulnerabilities in PHP applications today. We'll look at how those vulnerabilities work under the hood, and how to prevent them. Then, we'll spend time reviewing actual code with actual vulnerabilities. Once we've identified a potential vulnerability, you will actually execute an attack against it! By the end of the workshop, you should be able to identify insecure code and fix it!

Who is the target audience of this workshop?

  • Any developer who has preformed code-review before
  • Any developer who wants to understand security better

How experienced do I need to be?
If you understand how to read code, you have enough experience to attend this workshop!

Tutorial requirements:

·      A laptop
·      Install a LAMP stack

o   PHP 5.3+
o   Apache 2
o   MySQL 5.1+

·      A cursory understanding of the OWASP Top 10 will be very helpful

Extra Workshop: Advanced Symfony2

Thursday 09:30, track6 Talk level: Intermediate Talk type: Overview

This workshop dives into Symfony advanced features. You will learn how to master the dependency injection container configuration and write cacheable contents for an HTTP cache like Varnish.

Extra Workshop: Code Review for Security

Thursday 13:45, track5 Talk level: Beginner Talk type: Hands on

Imagine the day where you get an email from your CEO: "Our site has been hacked! Millions of user records have been leaked! And we're being sued!"... Unfortunately, that situation appears to be quite common place in the modern world. In the past year alone LinkedIn, Sony, Zappos, Twitter, Apple, Yahoo and LastFM (and a lot more) have compromised, leaking over 100 million user records. How has this become common place? Developers traditionally haven't focused on security (that's someone else's problem, right?)... Wrong! Security is everyone's job!

Come and learn more about how to identify and fix security issues! In this workshop, we'll cover the most dangerous and prevalent security vulnerabilities in PHP applications today. We'll look at how those vulnerabilities work under the hood, and how to prevent them. Then, we'll spend time reviewing actual code with actual vulnerabilities. Once we've identified a potential vulnerability, you will actually execute an attack against it! By the end of the workshop, you should be able to identify insecure code and fix it!

Who is the target audience of this workshop?

  • Any developer who has preformed code-review before
  • Any developer who wants to understand security better

How experienced do I need to be?
If you understand how to read code, you have enough experience to attend this workshop!

Tutorial requirements:

·      A laptop
·      Install a LAMP stack

o   PHP 5.3+
o   Apache 2
o   MySQL 5.1+

·      A cursory understanding of the OWASP Top 10 will be very helpful

Extra Workshop: Hands on PHP memory usage

Thursday 13:45, track7 Talk level: Intermediate Talk type: Hands on

This tutorial will start by recalling you what the memory is in computer science. We'll then foresee how PHP deals with memory by introducing the internal component Zend Memory Manager. Then, we'll show you how to code efficiently by avoiding leaks in your code, talking about garbage collection, circular references, and copy on write mechanisms.

Practical exercises include installing tools, using them and thinking about script problems regarding memory usage.

Tutorial requirements:
·      A laptop with administration access to it
·      Your favorite IDE or text editor
·      Basic Linux knowledge
·      Install VirtualBox

Extra Workshop: The Pair-Programming Workshop -Half day-

Thursday 13:45, track4 Talk level: Intermediate Talk type: Hands on

Why are 2 developers on one problem and one computer faster than 2 persons on 2 problems? Why is the code quality radically better? How to integrate Pair-Programming into your daily work routine? All this questions should be answered and experimented on in one workshop.We will explore all the facts that are out there (including some that can convince your boss to buy into it): Pairing, Test first Development as a Pair, Katas and Coding Dojos.

Tutorial requirements:
·      A laptop
·      Programming skills (at least HTML(5) is required)
·      Little PHP or Javascript knowledge

Hands on PHP memory usage

Thursday 09:30, track7 Talk level: Intermediate Talk type: Hands on

This tutorial will start by recalling you what the memory is in computer science. We'll then foresee how PHP deals with memory by introducing the internal component Zend Memory Manager. Then, we'll show you how to code efficiently by avoiding leaks in your code, talking about garbage collection, circular references, and copy on write mechanisms.

Practical exercises include installing tools, using them and thinking about script problems regarding memory usage.

Tutorial requirements:
·      A laptop with administration access to it
·      Your favorite IDE or text editor
·      Basic Linux knowledge
·      Install VirtualBox

Introduction to Modules in Zend Framework 2

Thursday 09:30, track2 Talk level: Intermediate Talk type: Overview

One of the highly anticipated new features of Zend Framework 2 is the introduction of an all new and powerful approach to modules. This new module system has been designed with flexibility, simplicity, performance, and re-usability in mind.

In this interactive workshop, Evan Coury, the author of the new ZF2 module system, will explain everything ZF2 modules have to offer, while covering the process and strategies for building effective, reusable ZF2 modules leveraging fundamental ZF2 concepts such as services and events. By the end of the workshop, you’ll have the basic knowledge and examples necessary to begin building great modular applications with Zend Framework 2.

Tutorial requierements:
·     A laptop with a [LWM]AMP stack to follow along is suggested

Introduction to Symfony

Thursday 13:45, track6 Talk level: Beginner Talk type: Overview

In this short introduction to Symfony workshop, you will discover how to install the framework with Composer and deliver your very first HTML pages. You will learn how the code in a typical Symfony standard application is organized into standalone components and bundles. During the workshop, we will focus on the internal routing system and also on building smart templates thanks to the Twig template engine. A short demo of database handling with Doctrine will be presented if we have extra time.

Tutorial requirements:
·      A laptop
·      Install at least PHP 5.3.10 or more
·      Having Symfony already  installed is a plus 

Rapid, Smart Development in Magento: 120 Minute Module

Thursday 09:30, track3 Talk level: Beginner Talk type: Overview

For knowledgeable developers, the Magento framework IS a rapid development framework. Through its nimble ORM, flexible theming architecture, class rewrite system, and event/observer architecture, the framework should allow any developer to achieve his or her goals with maximum flexibility for upgrades and future customization. The speaker - a seasoned developer, Magento U instructor, and avid developer community advocate - explains the fundamental concepts behind a well-built Magento module and demonstrates the speed with which modules can be developed. Experienced Magento developers in the audience will have several AHA! moments, and new or recent developers will experience the most concise learning bootstrap available. The presentation concludes with Q&A.

Tutorial requirements:
·      A laptop
·      Install a LAMP/WAMP/MAMP stack
·      Install the latest Magento CE release
·      Install the Magento CE sample data set
·      Install Virtualbox
·      Your favorite IDE or text editor

The Pair-Programming Workshop -Half day-

Thursday 09:30, track4 Talk level: Intermediate Talk type: Hands on

Why are 2 developers on one problem and one computer faster than 2 persons on 2 problems? Why is the code quality radically better? How to integrate Pair-Programming into your daily work routine? All this questions should be answered and experimented on in one workshop.We will explore all the facts that are out there (including some that can convince your boss to buy into it): Pairing, Test first Development as a Pair, Katas and Coding Dojos.

Tutorial requirements:
·      A laptop
·      Programming skills (at least HTML(5) is required)
·      Little PHP or Javascript knowledge

Varnish workshop

Thursday 13:45, track3 Talk level: Intermediate Talk type: In depth

Lots of people want to use a reverse proxy cache like Varnish to ensure the scalability of their site, app or service. Varnish isn't that hard to install and configure, but there are so much things you can do with it that a 3 hour workshop can be useful. We'll cover the basics: installation, backend setup, loadbalancing and default Varnish behaviour. We'll also learn how Varnish deals with Cache-Control, Expires, ETag and Vary headers.

We'll work with the integrated logging and monitoring tools to examine the flow and the hitrate. Eventually we'll learn how to write caching rules in the Varnish Configuration Language. This will increase the hit rate of your application.There will be some theory, but the majority of the session will consist of practical examples and hands on exercises.

Tutorial requirements:
·      A laptop
·      Install VirtualBox and Vagrant (http://docs-v1.vagrantup.com/v1/docs/getting-started/index.html)