Some people have this misconception that there is a plot to kill of the original mysql extension (aka ext/mysqli) in PHP.
So first off, I know that bloggers are not journalist. So apprently fact-checking is not required for a rant blog post. ;-) But if a blog post is a rant, it should be labeled as such.
ext/mysqli (hint: "i" as in improved) has been the goto extension for years. If anyone writes code in 2011 which uses ext/mysql, then they should be fired or demoted to trainee. MySQL's 4.1.3 beta was released in 2004 and ever since its release, it's been "strongly" suggested to use ext/mysqli.
PHP's fault in this case is that it didn't drop ext/mysql sooner.
The problem with legacy code is that it's usually not a legacy with the good meaning of the word.
It's indeed a legacy of the past which often exhibits all things that can go wrong on a PHP project.
In a situation where a project requires an older version of PHP to run, there are two kind of improvements developers (and essentially the companies employing them) miss out on: active and passive.
a generally happen and don't require anyone to re-write any code, examples include:
- PHP's runtime became more efficient
- improvements such as garbage collection
- most importantly: bugs were fixed
a may require updates to the code base - they mostly include new features (e.g. through a new extension) or extensions of the language itself - namespaces, traits, etc..
In addition to missing out on the improvements of the language another major problem is that since the code base requires an out-dated (maybe vulnerable) version of PHP to run, companies are often stuck in an entirely outdated ecosystem.
From top to bottom: it starts from the OS (Security updates?) - Linux, but also includes the services you run - MySQL and Apache. But there you go, the entire LAMP stack is fubar'd.
Anyone could argue that it's possible to e.g. run PHP4 on a recent Linux with semi-recent components, but let alone compiling PHP and/or backporting patches for security issues and crucial bugfixes don't make maintainance exactly trivial.... more after the jump.