FrOSCon 2013 - PHP project room

Sponsored by

Qafoo - passion for software quality

PHP room schedule

The schedule of the PHP track at the FrOSCon 13. Thank you to all speakers:

Saturday, 24.08.13

Time

Session

10:00

Arduino and PHP
Thomas Weinert

Mit dem Firmata-Protokoll können Arduinos und kompatible Systeme gesteuert werden. PHP kann so als Schnittstelle zu Datenbanken oder anderen externen Resourcen dienen.

11:15

Fixing legacy code
Benjamin Eberlei & Kore Nordmann

Most of the time developers do not write new code, but adapt existing code. In grown environments even small adaptions to existing code tend to have side effects on the full system without anyone knowing. We identify the most important issues when working with legacy code and show strategies to refactor them out without breaking the application. After this session you will be more comfortable working with legacy code and make your project turn around to the better.

14:00

Finding a pub with MongoDB and OpenStreetMap
Derick Rethans

Pubs and OpenStreetMap are both a hobby. In this talk, I will be explaining MongoDB's geospatial features to help you (and me) to find the closest pub. The talk covers how the OpenStreetMap data works, how to store this in MongoDB and what types of different queries we can run to find the closest pub. We will be looking at some theory (no scary maths!) and some practical examples.

15:15

Unbreakable Domain Models
Mathias Verraes

Data Mappers (like Doctrine2) help us a lot to persist data. Yet many projects are still struggling with tough questions: - Where to put business logic? - How to protect our code from abuse? - Where to put queries, and how test them?

Let’s look beyond the old Gang of Four design patterns, and take some clues from tactical Domain Driven Design. At the heart of our models, we can use Value Objects and Entities, with tightly defined consistency boundaries. Repositories abstract away the persistence. Encapsulated Operations helps us to protect invariants. And if we need to manage a lot of complexity, the Specification pattern helps us express business rules in the language of the business.

These patterns help us evolve from structural data models, to rich behavioral models. They capture not just state and relationships, but true meaning.

The presentation is a fast paced introduction to some patterns and ideas that will make your Domain Model expressive, unbreakable, and beautiful.

16:30

Marrying front with back end
Bastian Hofmann & Volker Dusch

Most web frameworks are broken. They either just address the server side part of a web application (Rails, Symfony, Spring, Sinatra, ...) or the client side (ext.js, YUI, Backbone.JS, amber.js,…) resulting in duplicated code, inefficient implementations and lots of boilerplate code. Recent node.js based solutions like Yahoo's Mojito or Meteor are trying to change this, but what if you don't start development from scratch because of a large legacy codebase or not wanting to use 0.x versions?

This talk will feature and overview of an architecture that enables heavy reuse of even the smallest components by showing the details of the researchgate.net implementation. This approach enables developers to take page elements, like a single ""follow"" button, and place it everywhere on the site without having to duplicate any PHP, JS, HTML, CSS or AJAX endpoints in the process. Moreover it enables huge scalability, performance and UX improvements and should provide you with a couple of new ideas that are usually not explored in a classic (H)MVC approach.

Sunday, 25.08.13

Time

Session

10:00

Symfony 2 REST Edition
Lukas Kahwe Smith

11:15

Stone Masons vs. 3D printer in the CMS world
Lukas Kahwe Smith

Content management systems are no doubt a pillar for the internet, empowering non programmers to build websites. However by their nature such CMS solutions tend to bring a ton of features that are not going to be used. Worse these features sometimes are even a hinderance when one needs to build something a bit more unique and custom. As such building a custom website with a CMS is a bit like being a stone mason working from a gigantic hunk of rock. The Symfony CMF proposes a different approach for such use cases. By providing essentially a framework of use at will tools its more like using a 3D printer to precisely put together exactly the pieces needed for the project. This talk will introduce the philosophy of Symfony CMF and the tools it provides.

14:00

Phing for power users
Stephan Hochdörfer

So you are already using Phing and looking for ways to get more out of your build setup? Let a Phing power user show you how to effectively structure your build files. Learn how to write your own Phing tasks and how to distribute them. Get introduced how to use Phing in a Composer setup and what is needed to let Jenkins run your Phing build without pain.

15:15

Test Proxies, oder: Wie aus Problemen Features werden
Arne Blankerts & Sebastian Bergmann

Integrationstests schließen die Lücke zwischen Unit Tests und Systemtests, indem sie auf die Schnittstellen zwischen Komponenten fokussieren und sicherstellen, dass ihr Zusammenspiel wie erwartet funktioniert. In diesem Vortrag machen Arne Blankerts und Sebastian Bergmann anschaulich, wie aus einem konkreten Problem bei der Arbeit an Integrationstests in einem Kundenprojekt das Feature "Test Proxies" für PHPUnit entstand. Sie diskutieren das Problem, stellen die Lösung vor, erklären die Implementierung von Mock-Objekten in PHPUnit und zeigen, wie das Feature umgesetzt wurde.

16:30

Specification by Example
Nikolas Martens

Some call it Behavior-Driven Development, some Agile acceptance testing or Story testing - Specification by Example is a powerful software development technique that can maximize your productivity and minimize your frustration by enabling a truly collaborative way of development. Yet the multitude of names is already a symptom of how scattered the community is about its main concepts. Also, many developers are kept from experimenting with it because of the amount of frameworks and tools it seems to require, resulting in a considerable cognitive and technological initial investment. But this is not necessary. In this talk, I introduce Specification by Example and how it can be implemented both management- and technology-wise in green- as well as brown-field projects so you can start taking full advantage of its benefits in your work, with your tools, right now.