Archive for August, 2008


“Every language has an optimization operator. In C++ that operator is ‘//”

Extension development on windows

When it comes to choose a operating system to run PHP applications often Linux is the choice. PHP, it’s buildsystem and it’s extensions are developed and optimized to run under Linux (and Unices). There are several reasons that Linux is the better supported operating system. Maybe due to historical reasons, maybe most of the core developers work und Linux (rumours were afloat that this is not quite true) or maybe just because the extensions finally run on a Linux server, so therefore it only counts if it runs under the target system.

This is actually the reason to not even try to compile my ktaglib extensions under Windows. Well but this approach is doomed to fail as most of the developers out there use Windows as their operating system. Therefore they are not able to run the extension and might not be able to ingerate your extension into their application. So actually I ended up booting up windows again (well after searching for the harddisk that contains a running windows) and try to compile it. Otherwise my fellow collegues wouldn’t be able to fix my buggy PHP code.

I remember compiling extensions under Windows a year ago, which actually doesn’t seems to be very easy for me. Since then a lot changed. Ongoing pecl2 efforts from Pierre with great help from Elizabeth and Rob now makes compiling on Windows without deeper knowledge about the Windows buildsystem easy. They carry together various notes about the build dependencies in the official php wiki. Furthermore Elizabeth recorded a video showing how to compile PHP on windows in a few minutes. So I actually ended up going to the page and just get the necessary libraries, put them into the right directory and compile PHP the same way as under Linux.

This helped to actually get ktaglib running under Windows. Just take the taglib windows port from the taglib website and compile your windows ktaglib using the PHP windows build system. Maybe the new scripts from the php-internals-win repository, that Pierre recently commited, help you to get you way through. It’s really amazing to concentrate on the work and not trying to get a buildsystem working.

ktaglib is a PHP binding for KDE’s taglib that helps you to read id3 tags and audio information from MP3s or OGGs. The current version is 0.0.1a1 and can be downloaded at