PHP

These posts are all related to the PHP language

August 3, 2022

Narrowing types for static analysis

I have spent the last year moving a few big old codebases, including Composer, to PHPStan's level 8. Here are a few lessons I think I have learned in the process. I was for a while skeptical about...

Read

May 15, 2018

PHP Versions Stats - 2018.1 Edition

It's stats o'clock! See 2014, 2015, 2016.1, 2016.2, 2017.1 and 2017.2 for previous similar posts. A quick note on methodology, because all these stats are imperfect as they just sample some subset...

Read

November 13, 2017

PHP Versions Stats - 2017.2 Edition

It's stats o'clock! See 2014, 2015, 2016.1, 2016.2 and 2017.1 for previous similar posts. A quick note on methodology, because all these stats are imperfect as they just sample some subset of the...

Read

May 7, 2017

PHP Versions Stats - 2017.1 Edition

It's stats o'clock! See 2014, 2015, 2016.1 and 2016.2 for previous similar posts. A quick note on methodology, because all these stats are imperfect as they just sample some subset of the PHP user...

Read

November 18, 2016

PHP Versions Stats - 2016.2 Edition

It's stats o'clock! See 2014, 2015 and 2016.1 for previous similar posts. A quick note on methodology, because all these stats are imperfect as they just sample some subset of the PHP user base. I...

Read

June 29, 2016

Typo Squatting and Packagist

Earlier this month an article was published summarizing Nikolai Philipp Tschacher's thesis about typosquatting. In short typosquatting is a way to attack users of a package manager by registering a...

Read

June 6, 2016

PHP Versions Stats - 2016.1 Edition

Last year I posted stats about PHP versions, and the year before as well, both time in November. However this year I can't wait for November as I am curious to explore the PHP7 uptake! A quick note...

Read

April 21, 2016

Common files in PHP packages

This one started in a peculiar way. Paul M. Jones announced a new version of his Producer tool, I had a look at it and saw that it recommended having a changelog called CHANGES.md by default. This...

Read

April 5, 2016

Composer goes Gold

Five years ago today, Composer was born. In some ways it feels like yesterday, at least it doesn't feel like five years went by. In other ways it seems like a lifetime ago, and I can barely remember...

Read

April 4, 2016

Toran Proxy Updates

Over the last month I spent quite some time bringing Toran Proxy up to speed with the times, and added a few features along the way. I haven't blogged about it in a while so I thought an update was...

Read

December 18, 2015

The Road to Monolog 2.0

Monolog's first commit was on February 17th, 2011. That is almost 5 years ago! I have now been thinking for quite a while that it would be nice to start on a v2, and being able to drop some baggage....

Read

December 18, 2015

New Composer Patterns

Here is a short update on some nice little features that have become available in the last year in Composer. You may know about the composer validate command, but did you know about...

Read

November 23, 2015

PHP Versions Stats - 2015 Edition

It's that time of the year again, where I figure it's time to update my yearly data on PHP version usage. Last year's post showed 5.5 as the main winner and 5.3 declining rapidly. Let's see what 2015...

Read

August 11, 2015

MySQL's GROUP_CONCAT limitations and cascading bad luck

We had an incident today over at Teamup (where I have worked for the last 9 months by the way:) which is worth a quick blog post if it helps save anyone from having a bad day. We are using MySQL's...

Read

June 17, 2015

20 Years and 9 Days of PHP

Here is my (slightly late) take on Ben Ramsey's call for stories on how people got started with PHP (although at this point I feel he just did this to get his blog to rank number one on all PHP...

Read

May 4, 2015

Composer hosting improvements

Over the last two weekends I proceeded to upgrade the infrastructure behind packagist.org and getcomposer.org. There is now a lot more bandwidth and the DNS hosting was also migrated to DNSMadeEasy...

Read

December 8, 2014

Composer 1.0 alpha9

I tagged Composer's 1.0.0-alpha9 release yesterday and wanted to write down a more detailed update on the highlights of this release. It includes many changes as the last tag was almost one year old....

Read

November 14, 2014

My view of PHP version adoption

PHP 5.3 has been out of maintenance for about three months now and it seems like it's time for the community to move on at last. Drupal8 will target 5.4. Symfony announced the results of a poll about...

Read

June 19, 2014

Toran Proxy and the future of Composer

TL;DR: New shiny product to support Composer development: Toran Proxy I have spent quite a large part of the last three years working on both Composer and Packagist. This has been great fun for...

Read

May 27, 2014

Authentication management in Composer

Up until today if you run a home-grown package repository serving private packages it was quite a pain to use with Composer. You did not have efficient way to password-protect the repository except...

Read

January 3, 2014

PSR-4 autoloading support in Composer

As of today and thanks to a pull request by Andreas Hennings who did the bulk of the work, we have PSR-4 autoloading support in Composer. It is a feature that can have a serious impact on users of...

Read

November 19, 2013

Upcoming Conferences

Here is a short update on the conferences I will attend in the coming months, in case you want to meet or if you are just looking for a good one to attend: Next month I am very happy to have the...

Read

July 11, 2013

Composer: Installing require-dev by default

Jeremy Kendall started a small twitter shitstorm last night by asking why Composer's install command now installs the require-dev dependencies by default. Indeed until a few months ago the only way...

Read

March 4, 2013

Composer: an update on require-dev

Update: the install command now also defaults to --dev, read more about the rationale Using require-dev in Composer you can declare the dependencies you need for development/testing. It works in...

Read

December 20, 2012

One logger to rule them all

I called the vote on the Logger Interface proposal last week. When the vote ends next week it will become PSR-3 (since it already collected a majority). The fourth recommendation from the PHP-FIG...

Read

November 16, 2012

Encouraging contributions with the Easy Pick label

One of the barriers to convert users into contributors in an open-source projects is that many people have no idea where to start. They are usually scared to take on large tasks because they are not...

Read

April 23, 2011

I'm going nomad - introducing Nelmio

After almost three years working at Liip, I have finally decided to take the plunge and start my own business. Together with Pierre Spring, in early May we will start building up Nelmio. Why? To...

Read

April 13, 2011

Terminal (Bash) arguments tricks

Reading David DeSandro's last post on how to store strings in variables in terminal, or any bash-y shell (I'd say any unix shell but I'm sure there is a weird one out there that does things...

Read

December 31, 2010

Speaking at ConFoo 2011

I recently had the pleasure to hear that I would be speaking at the ConFoo conference. This is a great opportunity for me as I'll finally be able to meet a few US-based guys from the PHP community...

Read

December 15, 2010

Speaking at Symfony Live 2011

I have the pleasure to announce that I will be speaking at the upcoming Symfony Live conference (Paris edition). I've been working with and on Symfony2 for a few months already, both in my spare...

Read

December 9, 2010

ESI - Full page caching with Symfony2

Launched about a month ago, techup.ch runs on the Symfony2 PHP framework, which is still undergoing heavy development but is already a great framework. Don't get me wrong, the framework is fast,...

Read

October 7, 2010

Speaking at the IPC and WebTechCon

Next week the International PHP Conference and the WebTechCon will happen both in Mainz, Germany. I will speak at both events over the three days and the good news is that the combined 100 sessions...

Read

September 29, 2010

Symfony2 Presentation

Last weekend at the PHP Unconference in Hamburg I gave a talk showing an overview of the Symfony2 framework. The allowed 45min were way too short to say everything I wanted to say and I didn't really...

Read

September 23, 2010

PHP Console in Your Browser

So-called interactive modes for scripting languages are commonly used in the command line, and they are great for quick tests, but most of the time when I try something it tends to grow and quickly...

Read

September 22, 2010

Switching on my WLAN with my phone

It all started when my router began to crash every few days. All my connections would drop, and misery ensued. I disabled WLAN/Wi-Fi and it stopped crashing, so I was happy. But then my laptop's...

Read

June 3, 2010

Introducing Slippy - HTML Presentations

Slippy is a HTML Presentation library written with jQuery, it takes a html file in and plays it in any browser. It is optimal for programming-related talks since it includes a syntax highlighter and...

Read

May 10, 2010

Unpredictable hashes for humans

Disclaimer: As the title suggests, this was written for the average developers out there, not security experts. The article contains some shortcuts that might not please the more enlightened because...

Read

April 5, 2010

Project management in PHP with Arbit

I would like to attract everyone's attention on the 0.3-alpha release of Arbit. For those that do not know Arbit yet, it is a project management and issue tracker build in PHP. It uses CouchDB as a...

Read

February 22, 2010

Including open source in the hiring process

We were discussing the difficulty of the hiring process from a company point of view last week at the github meetup in Paris, and more specifically how hard it is to get quality people without...

Read

February 18, 2010

Symfony Live 2010 - Symfony2, speaking and stuff

Overall the conference was pretty interesting since I don't have a lot of experience with symfony I learned quite a bunch of things about it's usage. I also met a lot of nice people, and ended the...

Read

December 8, 2009

Dwoo is better than Twig

It's lame catchy title day, a more appropriate one would be "Think for yourself", but I want to get my point across. This is a general purpose idea of course, I don't think there is any case in your...

Read

December 2, 2009

Major glob() fail

I just had the pleasure of discovering another of PHP's little quirks and since it's been almost a year since my last post, I thought it would be a good occasion. Working on some personal project...

Read

December 23, 2008

Multiton base class

While I like the Singleton pattern every now and then, I prefer the flexibility that the Multiton potentially offers, and well it's just an extended version of the Singleton, so it's "compatible"...

Read

October 24, 2008

Dwoo v1.0 is out

Now that Dwoo's user base has grown a bit and that I've received enough feedback and fixed quite a bunch of bugs and design flaws, I feel confident it's time to go stable, so here comes Dwoo v1.0.0...

Read

May 13, 2008

Who let the Dwoo out ?

Four months have passed since I started on this project and I finally feel that it is stable enough to make an announcement and have more people trying it. So what is it ? Dwoo is a PHP5 template...

Read

December 18, 2007

PHP RSS Generator

As part of my work on my CMS (and website as this site is running on it), I decided to code a RSS feed builder. This could easily be made as a standalone class so I thought I would share it. The...

Read

November 30, 2007

ActionScript 3 Language file for GeSHi

As I wanted to post AS3 code with syntax coloring, I researched it a bit and found GeSHi, a PHP syntax highlighter, for which you can create language files quite easily. There is currently no AS3...

Read