Update: One day after I wrote this post, version 2.8.36 was released to fix this problem. It seem that other versions of Symfony were also affected. If you are interested in this problem, read on. If you are affected by it, you should upgrade, not use the fix from here.
Last night I implemented a few improvements in the Metadiscourse annotator which I am developing in my spare time. (I rewrote several functions that cut the running time of two actions from minutes to seconds … but that’s for a different post, maybe …). I tested the new code on my development computer and everything seemed perfect, so I deployed the new version. Just before sending an email to the people who use this program, I noticed that a particular functionality that relied on AJAX requests no longer worked. This was completely unrelated to the changes I made. Initially, I thought it is because I restricted the HTTP method to GET, whilst the request was done using POST. I fixed that, but it was still not working. After spending a bit of time, I realised that none of the AJAX requests worked anymore. This was at 1am, how else 🙂
I analyse my Symfony applications using SensioLabsInsight. The reports I receive are not always useful, but many point to various problems that should be considered. SensioLabInsight integrates with GitHub so you can get an analysis with each commit without doing anything. That’s definitely a nice feature. One of the errors I had from the beginning was a critical error “Dependencies not installable”. The problem is caused by a “Connection refused” error that had not much to do with my code.
I deal with several projects that are written in PHP using the Symfony framework. One of the regular tasks I have to do is to deploy the applications on the production servers. For more than one year I have been successfully using capifony, which after the initial tweaking worked without a problem till last night. The problem was not because of capifony, but it was caused by composer: