Remi ColletPHP extensions status with upcoming PHP 7.4 (23.5.2019, 11:44 UTC)

With PHP 7.4 entering stabilization phase, time to check the status of most commonly used PHP extensions (at least, the ones available in my repository).

Here is the (not yet) exhaustive list.

1. Compatible

The last published version is compatible

# Name Version State
  ahocorasick 0.0.6 OK
  amqp 1.9.4 OK
  apcu 5.1.17 OK
  apcu_bc 1.0.5 OK
  apfd 1.0.1 OK
  ast 1.0.1 OK
  base58 0.1.3 OK
  bitset 3.0.1 OK
  brotli 0.7.0 OK
  couchbase 2.6.0 OK
  dio 0.1.0 OK
  ds 1.2.9 OK
  event 2.5.0 OK
  fann 1.1.1 OK
  gearman 2.0.5 OK
  geoip 1.1.1 OK
  horde_lz4 1.0.10 OK
  igbinary 3.0.1 OK
  inotify 2.0.0 OK
  json_post 1.0.1 OK
  krb5 1.1.2 OK
  libvirt 0.5.4 OK
  lzf 1.6.7 OK
  mailparse 3.0.3 OK
  maxminddb 1.4.1 OK
  memcache 4.0.3 OK
  memcached 3.1.3 OK

Truncated by Planet PHP, read more at the original (another 6699 bytes)

Voices of the ElePHPantInterview with Robert McFrazier (23.5.2019, 08:36 UTC)
Derick RethansPHP Internals News: Episode 11: Parallel Extension (23.5.2019, 08:11 UTC)

PHP Internals News: Episode 11: Parallel Extension

In this eleventh episode of "PHP Internals News" I talk with Joe Watkins (Twitter, Patreon, Website, GitHub) about his parallel extension.

The RSS feed for this podcast is, you can download this episode's MP3 file, and it's available on Spotify and iTunes. There is a dedicated website:


Music: Chipper Doodle v2 — Kevin MacLeod ( — Creative Commons: By Attribution 3.0

Become a Patron!
Evert Pot426 Upgrade Required (21.5.2019, 18:22 UTC)

The 426 Upgrade Required status code is used when a server wants to tell a client that they should be using a newer version or different protocol to talk to the server.


HTTP/1.1 426 Upgrade Required
Upgrade: HTTP/3
Connection: Upgrade

To use this service, you must use HTTP version 3. 


When a HTTP connection is switched to another protocol (such as Websocket), typically this is done via the Upgrade header in the request, and the server responding with 101 Switching Protocols. This is true for initiating a Websocket connection and for switching a (non-TLS) HTTP/1 to HTTP/2 connection.

The 426 status code could be used by a server to force this protocol switch, however, I haven’t seen any examples personally of servers doing this.

I can imagine that during the upgrade from HTTP/1.0 to HTTP/1.1 this could have been useful and thus this feature may have been added to prepare for situations where servers want to enforce a client to use a newer version.

I believe this is also used by people who are forcing a switch from HTTP to HTTPS without an automated redirect.

I’m not aware if there are clients that can switch protocols or protocol versions automatically, and I don’t know if browsers support this out of the box. My guess is no, but I don’t have a source for this.


Voices of the ElePHPantInterview with Tim Bond (21.5.2019, 13:04 UTC)

Show Notes

This episode is sponsored by
Day Camp 4 Developers

The post Interview with Tim Bond appeared first on Voices of the ElePHPant.

Sergey MitroshinPHP Session Locking and cURL timeout error (21.5.2019, 01:14 UTC)

Although PHP sessions seem to be pretty straightforward on the first sight, underestimating their complexity can lead to some hard to track problems.

One of such things is session locking mechanism. It's purpose is noble - protect session data from being overwritten by other instances of the same or other scripts running at the same time.

Continue reading
Pascal LandauHow to build a Docker development setup for PHP Projects [Tutorial Part 3] (20.5.2019, 08:07 UTC)

In the third part of this tutorial series on developing PHP on Docker we'll lay the fundamentals to build a complete development infrastructure and explain how to "structure" the Docker setup as part of a PHP project. Structure as in

  • folder structure ("what to put where")
  • Dockerfile templates
  • solving common problems (file permissions, runtime configuration, ...)

We will also create a minimal container setup consisting of php-fpm, nginx and a workspace container that we refactor from the previous parts of this tutorial.

Published parts of the Docker PHP Tutorial

All code samples are publicly available in my Docker PHP Tutorial repository on github. The branch for this tutorial is part_3_structuring-the-docker-setup-for-php-projects.

If you want to follow along, please subscribe to the RSS feed or via email to get automatic notifications when the next part comes out :)


Shout out to Nils Meyer for giving the final "[...] nichts offensichtlich falsch" ("nothing obviously wrong") :)

Table of contents

Truncated by Planet PHP, read more at the original (another 58661 bytes)

Matthias NobackNewcrafts 2019 Day 1 (17.5.2019, 14:15 UTC)

This week I attended and spoke at the Newcrafts conference in Paris. The following is a mix of notes and personal observations I wanted to share, centered around some of the talks I saw there.

Romeu Romera: Bourdieu's Social theory and our work in tech

I had never attended a talk by Romeu before. I really enjoyed this one. Somehow I already knew that he uses a mindmap to support his talk. I thought he would use an existing mind map to navigate through the talk, but it turned out he was creating one during the talk. For me personally, a slide deck helps to keep track of the story, and it helps me remember all the different topics I need to talk about. Not so much for Romeu, who knew exactly what he was going to talk about, and didn't seem to forget to mention any important part, or make important connections.

The topic is one that seems close to his heart. Still, he called himself "not an expert", saying that this talk was an experiment. It turned out that he was hinting at the fact that the subject matter is vast, and he could only cover some parts of it during the talk. Still, the things he covered, maybe simplified a lot, were very impactful, and very interesting. I'd definitely recommend watching this talk once it becomes available online.

More than with any other talk, I think you can't help it but apply the ideas mentioned to your own situation when you listen to Romeu. He covered three parts of Bourdieu's social theory. The first part is about icons of power. The way you look and behave shows how much power you have. This modified appearance is called Symbolic Violence; an act of violance people in positions of power put onto themselves. I think in the context of conferences, being a public speaker is a great example of violence the speaker puts onto themselves. Personally, I often find it a painful experience (although I'll keep doing it as long as there's a way to help people do a better job in any way).

The second part of the theory has to do with Cultural Capital. Everyone has their own amount of cultural capital. Take for example the people in your team. Some will have more experience than others, a deeper understanding of design, architecture, etc. People with less cultural capital will be seen as lesser people. Having more cultural capital can also be an issue with speakers at a conference, where they will be automatically taken to be experts, to be better humans (or at least, better designers, programmers, etc.). They will be perceived to be more powerful, and more right. This isn't fair to either party; speakers, and attendees alike, but it's how the game gets played.

Differences in the amounts of cultural capital between people will result in Dissociation. The first thing that might happen is that you see a person with less cultural capital as someone you can ignore, not take seriously, etc. The other thing that could happen is that you'll feel that a person with more cultural capital than you is unreachable, and that they wouldn't be interested in even talking to you. Personally I can relate to this problem a lot. When I'm at a conference, it totally depends how I feel: if I feel like I have a sufficient amount of cultural capital, I'll be perfectly fine, and can speak freely with anyone in the room. If I feel that I lack cultural capital, I'm very shy, and generally tend to avoid other speakers, as I will quickly feel like an imposter, noticing a mismatch between the expected and the actual amount of cultural capital.

The third part of the theory is about Hexis, which means something like to what level you feel like you belong somewhere. Hexis could be considered "high" if you never doubt that you should be where you are now. It's low if you have doubts about your presence. Being self-condident is much appreciated, showing doubt is a signal of fragility, and it will look punishable. The immediate association I had, was how code reviews show a difference in seniority (which comes with self-confidence, never a doubt that you're in the right place). The senior developer is likely to provide a lot of nitpicking comments to the one who is more junior. The junior developer will likely have a hard time providing feedback to the senior. The situation gets worse if the senior is considered to be the boss/manager/team lead as well.

And this is where Romeu brings the discussion back to software development. The problem with some agile practices is that they assume equality in the workplace. Pair programming is easy if none of the programmers are the (perceived) boss. Retrospectives are easy if the (perceived) boss isn't there.

If you have enough cultural capital, and symbolic violence, you can ignore the problem. But if you have not, you can't. The problem is real. And of course, it's better if nobody would ignore the pro

Truncated by Planet PHP, read more at the original (another 4122 bytes)

Sergey MitroshinCommand Pattern for Legacy Code Refactoring (17.5.2019, 13:49 UTC)

Just recently I run into an issue on one of my projects which I gracefully solved using the Command pattern. The project has a lot of legacy code, and to avoid the pain of major refactoring we do it gradually, piece by piece.

Continue reading
Voices of the ElePHPantInterview with Phil Jackson (17.5.2019, 10:06 UTC)
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP