PHP Summit 2013

25. October 2013 in General

PHP Summit 2013 – 12 Trainer mit 18 Workshops zu allen wichtigen PHP-Themen

Die Entwickler Akademie präsentiert in Kooperation mit dem PHP Magazin vom 2. bis 4. Dezember 2013 den nächsten PHP Summit, diesmal in Berlin. Und ich habe die Ehre dieses Mal beim PHP Summit gleich 2 Workshops zu halten.

Der erste Workshop wird die Twig-Template-Engine behandeln (ohne Symfony), im zweiten Workshop wird es um Symfony2 gehen.

Das große PHP Trainingesevent bietet innerhalb von drei Tagen 18 Workshops und zwei Abendvorträge. Alle Workshops beziehen sich auf eine gemeinsame Zielanwendung. Alle Trainer lösen Teile, der sich aus der Spezifikation ergebenden Aufgabe mit ihrer jeweiligen Technologie bzw. ihres Frameworks. Die Teilnehmer können auf diese Weise perfekt vergleichen, wie man in unterschiedlichen Frameworks tendenziell die gleiche Herausforderungen löst. Zwölf der bekannte PHP-Experten vermitteln im PHP Summit ihr Wissen: Sebastian Bergmann, Arne Blankerts, Benjamin Eberlei, Ralf Eggert, Jens Grochtdreis, Sebastian Heuer, Timo Haberkern, Sebastian Heuer, Robert Lemke, Stefan Priebsch, Ulf Wendel und Jakob Westhoff. Alle Infos zum PHP Summit finden Interessenten auf:


Neuer Termin für eine offene Symfony Schulung im Januar

8. November 2012 in General


Die Version 2.x von Symfony hat in den letzten Monaten gezeigt, dass sie stabil, performant und für große Projekte nutzbar ist. Nachdem die letzten Schulungen auf großes Interesse gestoßen ist, wird es daher im Januar eine weitere offene Schulung zu Symfony2 geben. In drei Tagen werden alle Themen behandelt, die notwendig sind, um anschließend effektiv mit dem Symfony-Framework zu arbeiten. Die Veranstaltung ist als Workshop ausgelegt und ist entsprechend praxisorientiert.

Nähere Infos sind unter verfügbar. Dort können Sie sowohl die Schulungsinhalte als auch Informationen zum Schulungsort finden.

Ich würde mich freuen Sie oder einen Ihrer Mitarbeiter bei dieser Schulung begrüßen zu dürfen.


Timo Haberkern

Installing and using Coffee-Script with Assetic on Windows

15. November 2011 in Assetic, CoffeeScript, Symfony2

There are a lot of poor souls that are forced to use Windows as an OS for their daily development job. I’m one of them. I heard even of people enjoying working on Windows ;) There is one thing in common for them: Using cutting edge tools like CoffeeScript, node.js and others isn’t working easily out of the box most of the time. But in case of CoffeeScript there is good news. Since the release of Node.JS 0.6 with native windows support everything is working pretty fine. Here is what you will need to do to get it working.

Installing Node.JS

The best way using CoffeeScript is the installation via Node.js. The setup of Node.js can easily be done with the new Windows-Installer package that is available on the project site. There is nothing special here. After node.js is installed you will need to setup the node.js package manager (npm). You willneed to have a Git-Client installed on your machine. The best you can get is msysgit which brings a git bash console. Please make sure you have version 1.7.6 or newer installed on your PC. Open up a Git-Bash console and change to the folder you want to install npm (C:\Program Files for example). After that execute the following three commands:
[crayon lang=sh]> git config –system http.sslcainfo /bin/curl-ca-bundle.crt
> git clone –recursive git://
> cd npm
> node cli.js install npm -gf
You have now the node.js package manager installed.

Installing CoffeeScript

Installing CoffeeScript is now a piece of cake. Just use the following command:
[crayon lang=sh]> npm install -g coffee-script[/crayon]
The -g switch ensures that your CoffeeScript installation is available system-wide. If everything went right you can now start the CoffeeScript commandline tool from the console.

Coffee-Script commandline

If you need tutorials or reference material for CoffeeScript here is what I found useful:

Using Coffee-Script with Assetic

Working with Coffee-Script and the commandline compiler leads to uncomfortable development process. But there is light at the end of the tunnel. As with all assets Assetic will be of great help when using Coffee-Script files in your Symfony project. The AsseticBundle is part of the Symfony2 Standard Edition so there is no need to install anything. You just have to do some configuration work ahead. This is done in the app/config/config.yml file. There you have to add a filter for CoffeeScript.
By default this filter is looking at fixed folders for the bin files of CoffeeScript and node.js. These paths are unix-ones. So we need to configure the paths, so they correspond with your installation folders.
bin: c:/nodejs/bin/node.exe
node: c:/npm/bin/npm.exe
From now on there is no difference in using the CoffeeScript files with Assetic compared to unix systems. Here is how to use them in Twig-Templates.
[crayon lang=php]
{% javascripts filter=”coffee”

{% endjavascripts %}

If you need more infos on how to use CoffeeScript with Assetic take a look at the Blog of Richard Miller

How to build a great Eclipse-Environment for Symfony2-Development

7. November 2011 in IDE, Symfony2

As I wrote in my last blog post, I was surprised about how good Eclipse fits for the development of Symfony2 projects. Long years I have avoided to work with Eclipse if possible. The reason was that the plain IDE was useless for PHP development. Without a lot of plugins the feature set can’t stand the comparison with the other major IDEs (especially PHPStorm). But there are a lot of plugins, a combination of them let you build a really good Symfony2-Development environment.

So lets take a look what I did. As always I would love to hear your comments on everything that could be done better or any plugin you find it worth to install.

First of all you need a Eclipse installation. I have chosen version 3.7.1 of the “Eclipse IDE for JavaScript Web Developers” ( The first plugin to install is yedit a YAML Editor plugin for Eclipse. There are others but I found this one the best of them.  To install yedit add the Update-Site (Help->Install new Software) in Eclipse. The URL of the Update-Site is


The next plugins to install are the PDT (PHP Development Tools) and the Symfony2 plugin. Now the bumpy road lies ahead of us. The Symfony2-Plugin is in beta state at the moment and needs a development-build of the PDT to work. So installation can produce “interessting” results in form of errors. For a detailed installation instruction consult the installation page of the project. Because of the dependencies and the development speed things will change frequently.
What will you get installing the plugin? Short answer: A bunch of great little helpers for editing Symfony2 Classes. Here is my favorite list:

  • Autocomplete of route-names in Twig-Templates
  • Code-Assist of Template-paths
  • Code-Assist of Container-Services
  • Annotation-Support
  • Code-Assist for translations

For a more complete list of features please consult the Projects homepage. Here some screenshots (taken from the projects homepage)

PHP Tool integration

Next step is to get a better PHP Tool integration. As I’m addicted to Tools such PHPUnit, CodeSniffer and others I love to have them integrated directly in the IDE. And thats a thing Eclipse is lacking so far. But as always rescue comes by installing a new plugin. In this case PTI(PHP Tool Integration, The Installation can be done via the Update-Site of the Plugin ( The current version brings support for PHPUnit, PHP_CodeSniffer, PHP Depends, PHP Copy/Paste Detector. The development speed slowed down the last months, so if you like the plugin just make sure you send you congratulations to Sven Kiera (Twitter)
After installing the plugin you will have to initially configure it in the preferences (there is a new category PHP Tools there)

After installing and congiguring you get new views for your IDE. In these you can start the tools and can work through the results of them.


Chances are good that you never heard anything about WicketShell, although it is a great plugin after all. WicketShell adds a Console Shell as an Eclipse view. This is pretty useful to execute Symfony-Commandline-Operations or doing other console stuff. This is even more useful if you are using Windows because of the lack of a good console. The development activity of the plugin is low but it is usefull nonetheless. The Update-Site for installation:


The default capabilities of Eclipse/PDT are two basic settings for the idention size and the Tab policy. Compared to the possibilities of Netbeans or PHPStorm this is a shame. Luckily there is a plugin for that :) PHP Code Formatter: There is no updatesite available at the time of writing this. So you will have to download the plugin file and install it as a file (archive) in the under Help->Install New software. After installing the plugin you can creating code formatting rules that fits your Coding Style (hopefully you have one). This is totaly handy for reformating your sources with the Ctrl+Shift+F Shortcut.

Version Control

Even for the support of a version control system you will have to install a plugin. Sometimes there are more than one for the same VCS (for SVN for example). As I’m working with GIT and Mercurial most of the time, I installed these two plugins:

Git: I use EGit, update-site here:
Mercurial: I use MercurialEclipse, update-site here:

Code Coloring

Maybe you are a fan of strong colors or love dark backgrounds in your Editor windows. If this is the case the Eclipse Color Theme plugin is definitly for you. After installing the plugin from its update-site ( you can choose and install from a great set of different themes (

That’s it. That brings Eclipse on par with other IDEs. For some things (DI autocompletion, Annotation support) this installation will beat the others.

The installation still has the general problems of an Eclipse installation. The components should be touched / updated carefully. Better don’t touch then if everything is working. The Symfony2-Plugin is still beta and relies on a development build of the PDT, so any update here can break the IDE. But without this you will get a decent PHP/Symfony2 IDE and some features are really a joy to work with. Will I love it? Most probably not, but it is a good choice for all who doesn’t have the free choice or like Eclipse anyway.

The state of Symfony2 support in IDEs

4. November 2011 in IDE, Symfony, Symfony2

I have developed a lot with Symfony2 in the last months. During this time I switched my development environment a lot too find the tools that fit my workflow as good as possible. Now we have a stable release of Symfony2 available it is time to take a look at the Symfony2-Support of my favorite PHP-IDEs.


Years ago Eclipse was my main IDE for PHP development. I switched to Netbeans with the version 6.5 because it was faster, more stable and got symfony 1 support in one of the 6.x versions. I never looked back. It is fast, stable and has a lot of cool features like PHPUnit-Support or the awesome code-formatter. The symfony 1 support is good, I loved to use the command-line runner and the switching between views and controllers. The PHP support is exellent and supports PHP 5.3. But there is no special support for Symfony2 projects available at the moment. I started a feature request some month ago but there is nothing new here. For a long time there was no Twig-Support either. This can be solved by installing a Plugin but it is sometime a bit buggy and unstable.


I felt in love with PHPStorm when it was released in Version 1. It is even faster than Netbeans and has all features you need. Debugging-Support is pretty good, PHPUnit is integrated, Good Code-Formatting is available, PHP 5.3 is supported. The lookup of classes and files is fast and convinient. Twig is supported out of the box in the current stable version. All in all it is a great IDE to develop PHP-Projects. There is no special Symfony2 support at the moment. For me the great JavaScript- and CSS-Support is a big bonus, as I develop a lot of code with backbone.js and other JS-Stuff these days. PHPStorm isn’t free but available for reasonable prices. I never regret that I bought a license.


Honestly I was surprised when I checked back the PHP-/Symfony2 support of Eclipse. Two month ago I started to recheck the option to switch back to Eclipse. I was pretty surprised that there are some nice features for Symfony2 developers waiting to be discovered in Eclipse. With some additional plugins you will get a really good Symfony2-IDE. I will write a blog-post about how to setup this as soon as possible (update. Here it is: “How to build a great Eclipse-Environment for Symfony2-Development“). The highlight is definetly the Symfony2 Eclipse-Plugin. It enhance Eclipse to the most advanced Symfony2 features so far. Here are some of them:

  • Autocomplete of route-names in Twig-Templates
  • Code-Assist of Template-paths
  • Code-Assist of Container-Services
  • Annotation-Support
  • Code-Assist for translations

I still don’t like the IDE itself. It takes lang to get used to it. You have to install a lot of plugins to ge a good feature set. Most of the time you will end in a plugin hell where some plugins only work with Eclipse version x another only with version y. In the end I always had more than one Eclipse-Installations (For PHP-Development, for Java-Development, for Flex-Development…). The PHP Support in general is good but the development is done pretty much out of the view of the community.


As I blogged some time ago, PHPEdit is a capable PHP IDE. It has the most advaned symfony 1 support of any IDE on the market, but this is limited on symfony 1. There was a survey some days ago about what support for Symfony2 is needed, so the makers of PHPEdit started to work on it but there is nothing ready at the moment. Even Twig is not supported at the moment. As I’m using MAC OSX for private projects and Windows at work I need an IDE that supports both platforms. PHPEdit though is only available for Windows. PHPEdit isn’t free but the pricing is ok for what you will get.


There are other alternatives too. Some do not use fullfledged IDEs for developing. There are some really cool editors out there. I’m a long-time-user of Textmate but the development nearly stopped and the development of the Version 2 is promised for years now. It is only available on MAC OSX. The best multi-platform alternatives I found are Sublime Text 2 and redcar. Both are really cool. I like Sublime Text 2 most. As TextMate it can enhanced via Bundles, it is small and lightweight.

Symfony Day 2011 in Cologne (Slides)

25. October 2011 in General

Last week I attended the Symfony Day 2011 in cologne. The event was great and really well organized. I went there for the conference day at friday. From what I heared the thursday workshops were good. The conference place was pretty crowdy and packed. Over 250 Symfony people were attending.

The day was packed with sessions. Igor Wiedler was first with a nice introduction to the Silex framework. I already used Silex in a small project but nevertheless Igor was pretty inspiring and I’m more convinced that I will use the Framework for some use-cases in the future.

Next up was Marc Weistroff with a talk about developer habits and how to learn from the Symfony2 sourecode. The presentation was nice and there were some useful tidbits but I think it would have been more useful if there would have been more concrete examples.

The last session before the lunch break was held by Stefan Koopmanschap and Christian Schäfer. Their talk about “Catching Opportunities with Open Source” was pretty well prepared (maybe the best prepared at the Symfony Day). The presentation style was fluid, humorous and it was totally motivating. Even if it was not directly Symfony-related there was so much of what you can learn from the two speakers own experience with open-source that it was the right descission to place such a talk at the Symfony-Day.

After the lunch break the sessions got more technical. The frist one was about the Sonata Admin Bundle. This was the session I was looking forward to. I know Thomas Rabaix did a wonderful job with the Admin-Bundle and I havn’t used it except in a small demo which didn’t scratched the surface. So I was eager to hear more about it. Sorry to say the talk doesn’t held up with my expectations. There was to much in detail informations, up to no overview on whats possible or some examples.

Next up was Hugo Hamon with its talk about how to create command-line applications/scripts with Symfony2 and the Console Symfony Component. The talk was really informative, nicely prepared and well presented.

The last session came from Richartd Miller who blogged a lot about Symfony2 and Dependency Injection in the last months. His talk about DI was a pretty good introduction to the topic. Interesstingly Richard was the only native english speaker of the speakers but the one I had most difficulties to understand :)

The highlight of the day was the Keynote held by Fabien Potencier. Showing his understanding of what Symfony2 is and whats not. His view on MVC, Symfony components was enlightend. He showed the new profiling capabilities of Symfony 2.1 too.

Next year the Symfony Day will become Symfony Live and will be located in Berlin. I hope I will find more time to attend the workshops and the hack-day.

Update on CuteFlow Development

21. September 2011 in CuteFlow

As I wrote in a previous post I’m working on a brand new Symfony2 based version of CuteFlow. I was on vacation the last 4 weeks so there was not that much progress at all but I want to inform you about the current status of the project:

  • The basic infrastructure is up and running. That means there is the basic layout, the menues, authentication and user management working.
  • From now on I will work on the feature set. I will keep you informed whats up and coming.
  • I uploaded a new webpage (rough) on the new Main project website ( The VServer the page is running is sponsored by the Filloo GmbH. Thanks for it guys. There is only little content at the moment but it will grow as the version will be more complete. BTW the website is built with the Silex Framework.
  • The Documentation infrastructure is up and running too. The documentation source (written in ReST, converted by Sphinx) is hosted on GitHub. We use ReadTheDocs to automatically build the HTML-Documentation from the Git-Repository. You can find the current version of the docu here.

I would be still more than happy about helping hands. There is some interest and first code writte by others but more is appreciated. You can find some first information in the documentation.

Looking for help for CuteFlow V4 project

4. August 2011 in General

Last week I started to completly rewrite the open-source workflow management software CuteFlow ( The new version 4 will be created with Symfony2 and will have a great feature set, helping you to create rule based workflows easily. The development take place on GitHub.

I will work on CuteFlow nearly fulltime the next weeks, so there is/will good progress. Nonetheless there are a lot of tasks to do, so every help is highly appreciated. If you want to join the project now is the time :) What I need most at the moment:

1.) Someone creating the infrastructure for the new documentation (Based on ReST and Sphinx). This means creating a documentation project and a automatic job that creates the documentation on the server with the sources from the GitHub repository
2.) Someone setting up a Continuous Integration using Sismo (prefered) or Jenkins
3.) Hosting: To get the things of 1+2 running I’m looking for a Hoster that sponsors the project with free hosting (vserver, PHP 5.3) and the domain.
4.) Helping with the new website (built with Silex, not online at the moment)
5.) Help with documentation writing (english)
6.) Translators for the software
7.) Developers (Need to know Symfony2)

If you need more information or want to help please mail on the CuteFlow-Dev-Mailinglist  or contact me directly via

Worthwhile books for your PHP-/Web-Development bookshelf

3. August 2011 in General

Over the years I read a lot of books regarding PHP-Development, Software-Design and -architecture. Some of them where good others not. Here is my book of books I really like and think they a worth to share them. Do you miss one? Please comment. I will try to keep the list up to date.

While most of the books are written in english, there are some written in german (as i’m a german native speaker). A lot of the books are describing good development practise but doesn’t use PHP as a language to describe them.


Development practise

Project Management


Nächster Termin für offene Symfony2-Schulung verfügbar

10. June 2011 in General


die neue Version 2 des Symfony-Frameworks wirft seine Schatten voraus. In Kürze wird die Version 2.0 als stabile Version freigegeben werden. Mit der neuen Version ändert sich die Entwicklung von Symfony-Projekten deutlich. Bereits heute wird Symfony2 von vielen für Produktivsysteme eingesetzt, da es große Verbesserungen mit sich bringt und bereits sehr stabil und performat arbeitet.

Nachdem die Schulung im Juni auf großes Interesse gestoßen ist, wird es im August wird es daher eine weitere offene Schulung zu Symfony2 geben. In drei Tagen werden alle Themen behandelt, die notwendig sind, um anschließend effektiv mit der neuen Symfony-Version zu arbeiten. Die Veranstaltung ist als Workshop ausgelegt und ist entsprechend praxisorientiert.

Nähere Infos sind unter verfügbar. Dort können Sie sowohl die Schulungsinhalte als auch Informationen zum Schulungsort finden.

Ich würde mich freuen Sie oder einen Ihrer Mitarbeiter bei dieser Schulung begrüßen zu dürfen.


Timo Haberkern