Tracks & Sessions
Session
Your tests are lying!
Sebastian Bergmann
thePHP.cc
Unit Tests help reducing the cost and risk of any individual change smaller. But how do you know that your tests are not lying and give you a false sense of confidence? In this session you will learn how to automatically detect problems in your test code, so called Test Smells, and how to avoid them. You will also learn how to write effective tests that will pay you back with information.
Using Cassandra with your web application
Tom Melendez
Yahoo!, Inc
You've got big data needs, ones that traditional RDBMS just don't fit. And you don't need the overhead. Introducing Cassandra, an open source, decentralized, key-value data store which can provide you with massive scale without a single point of failure. We'll discuss installation, configuration, how to talk to it with PHP and usage examples.
State of the Mocks
Sebastian Bergmann
thePHP.cc
When we are writing a test in which we cannot (or chose not to) use a real dependency, we can replace it with a Test Double. PHPUnit supports the automatic generation of stubs and mocks for this. Alternative mock object libraries such as Mockery and Phake promise to be more powerful yet to be easier to use. This session compares the various mock object implementations for PHP that are available.
Ran an den Klienten - ein Cache-Plugin für mysqlnd
Ulf Wendel
MySQL GmbH/Sun Microsystems GmbH
Kinder lieben es Türme zu bauen. Sie stapeln Bauklotz um Bauklotz aufeinander bis ihr Turm schwindelerregende Höhen erreicht. Programmierer haben sich kindliche Experimentierfreudigkeit erhalten. Sie stapeln Datenbankabstraktion auf Datenbankabstraktion. Der Quellcode profitiert, die Datenbank leidet. Ein Cache muß her: mysqlnd-Plugin oder MySQL Server Query Cache. Doch welchen und wie optimieren?
HTML5 for PHP Developers
Thorsten Rinne
Mayflower GmbH
HTML5 is the future. And the future has already begun! This talk will introduce the new features of HTML5 like Canvas, Web Storage, Websockets, Document Object Model 5 and Geolocation and how HTML5 will affect PHP developers.
Introduction to Testing with Selenium
Arne Blankerts
thePHP.cc
While unit tests usually cover all the important aspects of the backend, webbased frontends require a different approach - especially if javascript and client-side user interactions are to be tested. This session will introduce you to the powerful Selenium IDE and testing framework. You will learn how to create robust tests, using various selectors and how to integrate the tests with phpunit.
Why MVC is not an application architecture ...
Stefan Priebsch
thePHP.cc
... and how this should affect your code. Pretty much every PHP framework is based on MVC. We will explore what MVC was originally meant to be and how it is used (and abused) in web applications these days. We will find out where the model hides, and how to organize an application's business logic and clearly separate concerns. As a bonus, unit testing will become a lot easier.
Recipes for managing an Open-Source project with Git
Fabien Potencier
Sensio
Git is taking over source control management, and for good reason. After some time working with Git, you realize how fast and powerful it is. But in this session, I want to focus on the killer features that makes Git a fantastic tool for an Open-Source community. Of course, these techniques are also applicable to in-house developer teams.
Geolocation and Maps with PHP
Derick Rethans
This presentation covers the use of geolocation information with PHP. I will start with a theorectical background of all the services, mapping systems etc involved. After that, I will discuss on how to use geo-services from PHP. From obtaining of geo-location information through databases and services, mapping services to visualize geo-aware data to geo-aware data storage, manipulation and querying.
Practical PHP Refactoring
Stefan Priebsch
thePHP.cc
Refactoring - modifying software without affecting its behavior - can dramatically cut maintenance costs, and help avoid rewriting an application from scratch. We will demonstrate various refactoring patterns and use them on real-life code examples. What impact does refactoring have on application architecture, and how can developers sell refactoring to customers and the management?
Any to any - Convert your documents
Kore Nordmann
Qafoo GmbH
Tobias Schlitt
Qafoo GmbH
Not only in the CMS world converting between different document formats is an essential but painful task. (X)HTML, DocBook XML, different Wiki markup languages, PDF and OpenDocument can be easily converted into each other using the Zeta Document component. This talk will show you the possibilities based on practical examples and will also touch the internals of the component.
PHP inside
Derick Rethans
Traditionally a web-only language, but that doesn't mean that it can only be used for web applications. This presentation will show you how PHP can be used on embedded devices. I will cover some basics for GUI design, but also cover issues that show up when you have to take care of low-memory, low-bandwidth situations as well as restrictions with input methods.
PHPUnit to the limit
Tobias Schlitt
Qafoo GmbH
Kore Nordmann
Qafoo GmbH
PHPUnit is the de facto standard for testing in PHP. Not only unit tests are developed using this framework, but also e.g. front end tests using Selenium integration. In this session we will discuss more edge cases where the flexibility of PHPUnit allows you to write tests and integrate them into your automated test run, even if they are clearly not unit tests anymore.
From eZ to Zeta Components
Tobias Schlitt
Qafoo GmbH
Kore Nordmann
Qafoo GmbH
Since June 2010 eZ Components are incubated for becoming a project of the Apache Software Foundation under their new name Zeta Components. How did that come? What about the future of the project? And what about eZ? Legal aspects? Can I still venture to use this stuff? Who is now maintaining? And wow can I get involved? These are just some of the questions to be answered in this session.
'In search of…' - integrating site search systems
Ian Barber
Ibuildings
Though often a key method of navigation, site search often gets the short end of the stick in development, either by handing the job over to Google or just enabling full text search in the database. In this talk we look at how full text search actually works, how to integrate search into your PHP application, and how it's possible to provide better results than Google - at least on your own site.
Debugging - Rules and Tools
Ian Barber
Ibuildings
Finding and fixing bugs is a major chunk of any developers time. This talk describes the basic rules for effective debugging in any language, but shows how the tools available in PHP can be used to find and fix even the most elusive error.
Security by Design
Arne Blankerts
thePHP.cc
While security is commonly referred to as input/output filtering and about preventing all kinds of attacks from becoming successful, there is a lot more on the non-visual side of web development. This talk will uncover all the small details that may disrupt the users trust in your application. It is about all the things you may forget when developing your application and planning the environment.
Design patterns... revisited for PHP 5.3
Fabien Potencier
Sensio
Everything single major version of PHP brings interesting enhancements to the language. These changes means new possibilities and better implementation of some design patterns. In this session, I will show the evolution of the implementation of the infamous Singleton over the years. I will also show the implementation of some popular design patterns like the Observer and the Dependency Injector.
MySQL Query Tracing and Profiling
Johannes Schlüter
Sun Microsystems
Many performance-related presentations tell you that your bottleneck lies in the database. Following the famous 80/20 rule - 80 percent of the application are responsible for 20% of the resource usage - this presentation will discuss different tracing and profiling techniques available for PHP and MySQL to identify your bottlenecks and optimizing the parts of your setup which matter the most.
Designing HTTP URLs and REST Interfaces
David Zuelke
Bitextender GmbH
A lot of Web Services today claim to be RESTful APIs. But are they really? Do the URLs form a logical hierarchy, and do they accurately identify resources? Are the powers of HTTP leveraged properly? What is "hypermedia", and what is the secret behind the HATEOAS acronym that is so essential to the REST architectural style? This talk gives answers and guidelines using real-life examples.
MySQL&PHP - The current state
Johannes Schlüter
Sun Microsystems
MySQL is the most used database for PHP-powered applications. Still many users don't know much more than msql_query() and PDO::query(). This presentation will demonstratethe pros andcons ofthe different MySQL APIs for PHP (ext/mysql, msqli, pdo_msql) as well as demystify mysqlnd. It will also show recent advances by the PHP and MySQL development teams.
Advanced project tracking with arbit
Kore Nordmann
Qafoo GmbH
Arbit is open source and aims to be the next project tracker for your software projects, and is written in PHP. Besides issue tracking and Wikis it also provides integration with quality assurance tools, like PHPUnit, PHPCS and phpDepend. This talk will give an overview on its architecture, current state and how it will contribute to your development and maintance of PHP software.
Increase performance and uptime with Apache Traffic Server
Tom Melendez
Yahoo!, Inc
You've deployed your PHP application and your user base is growing from around the world. Do you need to rewrite your app for such a large scale? Do you need full installations in international colos? Maybe. Maybe not. Apache Traffic Server is a high-performance proxy and cache recently open-sourced by Yahoo!. Installation, usage, best practices and case studies will be covered at this talk.
Continuous Improvement in PHP projects
Thorsten Rinne
Mayflower GmbH
We all know Continuous Integration and Continuous Inspection with PHPUnit, Hudson/phpUnderControl and other PHP QA Tools. But nowadays software gets more complex and we need a third CI process: Continuous Improvement. This process includes anti pattern detection, technical debt analysis and static code analysis. The talk will present tools like the PHP_CodeBrowser, Cinder, Padawan or PHPMD.
Gearman Job Server
Frank Ruske
Mayflower GmbH
Gearman ermöglicht paralleles abarbeiten von Aufgaben auf verteilten Systemen und Prozessen. Es bietet die Möglichkeit, Jobs zu parallelisieren, Last zu verteilen und Funktionen sprachübergreifend aufzurufen. In dieser Session werden neben den Grundlagen auch praxisbezogene Beispiele gezeigt.
The Secret Recipe for a Rich and Juicy M
Robert Lemke
TYPO3 Association
Most Ms are stale and tasteless - and that although they are probably the most important ingredient of a tasty MVC implementation. This session is about the underestimated role of the M and how to create meaningful and clean Domain Models using Domain-Driven Design (a practical approach for creating clean apps for complex domains, independent from a specific technology). Bring your own apron.
Of knowledge sharing and the developer quality lifecycle
Jordi Boggiano
Liip AG
The buzz is all about software metrics, continuous integration and testing, but a rather simple way to achieve higher quality and make developers happy is to share knowledge and allow developers to learn and improve instead of only being milked for code. The session will go over multiple techniques implementable at a rather low cost that can improve knowledge sharing within a company or OS project.
Introduction to AtomPub Web Services
Ben Ramsey
Moontoast
Since 2003, the Atom format has been used as yet another feed format like RSS, but the Atom protocol opens the door to far more uses of Atom as both a means for distribution and publication. Ben Ramsey introduces the Atom format and protocol, explaining how these can form the foundation of any publishing service and serve as a platform for rich Internet applications.
First Steps: Lizenzverwaltung und Updates in Form eines eigenen PHP AppStores
TBN (to be named)
Webanwendungen genießen den großen Vorteil, dass Updates sich zentralisiert durchführen lassen, jedoch bedarf es im Rahmen einer Mehrkundenbeziehung eines effizienten Umgangs mit Systemversionen, Lizenzen etc. Weiterhin muss der Deployment-Prozess sich harmonisch in die vorhandenen Entwicklungsprozesse integrieren. Wir zeigen erste Schritte und Erfahrungen mit der Entwicklung eines PHP AppStores für unsere Softwarelösung xelos.net und geben Ideen für eigene Umsetzungen. Kernelemente sind hierbei u.a. eine Quellcode-Versionierung mit Subversion, Packaging und Encoding der Daten sowie eine Kommunikation mittels WebServices.
Creating clean code with Aspect-Oriented Programming
Robert Lemke
TYPO3 Association
OOP helps us creating a clearly laid out and intuitive model of the reality by means of objects. However, concerns like security, logging or transactions need to be implemented virtually anywhere, resulting in scattered error-prone code. Aspect-Oriented Programming separates these cross-cutting concerns from the rest of the code and lets you handle them in a well-known, central location.
Embracing Constraints With CouchDB
David Zuelke
Bitextender GmbH
There has been a lot of buzz lately about the NoSQL movement in general and CouchDB in particular. For people who are used to relational databases, a lot of CouchDB's limitations look like severe disadvantages; these constraints however can also be great opportunities. This talk will give an overview of CouchDB and then focus on embracing the system's constraints to build better products.
How to scale a PHP application
Jan Burkl
Zend Technologies GmbH
In this last years a lot of high traffic web sites have been built in PHP. One of the main problem to design a distributed PHP architecture is how to share session data between multiple servers.In this talk i would like to present the most used solutions to scale a PHP application along multiple servers using different technologies: nfs, database, memcache, Zend Server Cluster Manager, etc.
Tracks
Sessions
- Your tests are lying!
- Using Cassandra with your web application
- State of the Mocks
- Ran an den Klienten - ein Cache-Plugin für mysqlnd
- HTML5 for PHP Developers
- Introduction to Testing with Selenium
- Why MVC is not an application architecture ...
- Recipes for managing an Open-Source project with Git
- Geolocation and Maps with PHP
- Practical PHP Refactoring
- Any to any - Convert your documents
- PHP inside
- PHPUnit to the limit
- From eZ to Zeta Components
- 'In search of…' - integrating site search systems
- Debugging - Rules and Tools
- Security by Design
- Design patterns... revisited for PHP 5.3
- MySQL Query Tracing and Profiling
- Designing HTTP URLs and REST Interfaces
- MySQL&PHP - The current state
- Advanced project tracking with arbit
- Increase performance and uptime with Apache Traffic Server
- Continuous Improvement in PHP projects
- Gearman Job Server
- The Secret Recipe for a Rich and Juicy M
- Of knowledge sharing and the developer quality lifecycle
- Introduction to AtomPub Web Services
- First Steps: Lizenzverwaltung und Updates in Form eines eigenen PHP AppStores
- Creating clean code with Aspect-Oriented Programming
- Embracing Constraints With CouchDB
- How to scale a PHP application







