[TYPO3-core] PHP version requirement

Jigal van Hemert jigal.van.hemert at typo3.org
Fri Mar 1 21:49:49 CET 2013


Hi Michael,

On 1-3-2013 15:38, Michael Stucki wrote:
> Sorry, I wasn't clear enough. Of course someone cared, which is great.
> My comment was rather meant towards your suggestion to keep the 5.3.7
> requirement (and therefore leave out Debian).

That wouldn't exactly leave out Debian. There is no hard check that 
makes it impossible to install and run it on PHP < 5.3.7.

> That is even worse as it seems there is no problem at all to use it...

There is a problem with include_once() instead of relying on the 
autoloader on PHP versions below 5.3.7. The Debian guys and girls 
decided to do something very strange: they don't provide the original 
PHP distributions but decided to make something themselves with a low 
version number but which includes (many) bugfixes and possibly features 
(?) from older versions.

There is no reasonable way to distinguish a Debian PHP 5.3.5 (which 
actually works like a 5.3.8) from an original PHP 5.3.5.
Despite some effort to find a way to test if there was a version with or 
without the bug, there was only one way to go: set the requirement to 5.3.7

If you decide to use a PHP "version" which is not an original one, but a 
kind of Frankenstein version constructed from bits and pieces of various 
releases, then fine but that's a chance you want to take.

> I would really like to investigate this, but as I already mentioned, I
> couldn't find any notes about it in any of the mentioned versions:
>
[...]
>
> So either the problem was fixed before or someone needs to show me the
> bug number for it.

It might have been fixed as a side effect of the bug with the 
class_alias parameter hints?
https://bugs.php.net/bug.php?id=54624
I am not an expert of the PHP source code, so I can't judge this.
It was found during the tests of the namespaces operation. Some people 
with older PHP 5.3 versions encountered problems with include_once calls 
and parameter type hints.
The problem with the parameter type hints was solved by rewriting the 
hints and caching them. The include problem couldn't be circumvented.

I didn't like the version test because of the way some Linux 
distribution fiddle with PHP version numbers, but there was no way to 
test for the bug.

> We are using the dotdeb packages for neos.typo3.org and I can tell you
> there were several issues when something was broken after a simple
> update. Steffen and Karsten can probably sing a nice song about it.
> Exactly because of this, admins like Debian so much on their servers.

Every new release includes new bugs too. EXT:solr also broke with an old 
PHP 5.3.x update because the URL filter_var was broken when the domain 
contained a '-'. It took me some time to find the cause. Luckily a newer 
PHP release was available and the admins installed it.

>> we declared that we support this "version" and thus are obliged to fix
>> the bugs that were caused by Debian.
>> Maybe *you* want to support it personally; I don't.
>
> Sure I want as we use it in our company, just like many other companies.

No problem. Nothing prevents you from using a PHP 5.3 version below 
5.3.7; the Install Tool doesn't block it or doesn't complain. It's just 
not a version I think we should actively support. The original PHP 
version has known problems and there is no way to see if it is a patched 
version.

There is a similar situation with MySQL 5.0. The requirement for TYPO3 
6.0 is MySQL 5.1-5.5. There are no known problems with 5.0, but there 
was no known OS that still shipped MySQL 5.0 with its current releases. 
There's no use supporting this, even though there's no known problem.

Still, it's even better to use PHP 5.4.x if you want a bit extra 
performance, less memory use, etc. I guess admins like that too :-)

-- 
Jigal van Hemert
TYPO3 Core Team member

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the TYPO3-team-core mailing list