PHP 5.4

The downloads page of clearly states that Yii 2 is aimed at PHP 5.3.

Given the timing of things, that PHP 5.4.0GA is coming "real soon now", and that Yii 2 will perhaps spend considerable time in alpha/beta, has anyone considered changing the basis to PHP 5.4?

It was decided to stick to 5.3 - simply because 5.4 does not bring enough new things to the table.

Let’s not forget that Yii needs to be able to run on as many servers as possible.


well i guess we can use extensions to use some of 5.4’s tricks, like tracing and debugging with dtrace or whatever

The core will require at least PHP 5.3, but you can install and use PHP 5.3+ (including PHP 5.4) on your server with no problems. Then all PHP 5.4 features will be available to your code (including your Yii extensions that use PHP 5.4 features).

5.3 is just minimally required version. I think that’s a good target. :)

Just a memory recollection, but CodeIgniter 1.x.x (maybe 2.x also) detected PHP version in their equivalent to a CObject, allowing different sets of classes of the same name to coexist within the framework. The idea was originally meant to handle the distinction between PHP4 and PHP5 code (a major PHP version), but the concept seems very extensible. PHP4 related classes were used when running on top of PHP4 and so on.

CodeIgniter supports one additional feature and this is core class replacement. If the application code includes a file of the same name as a core class, the core class is replaced by the application version.

I always felt these were nice DRY solutions available should a developer need them. They are also KISS in the sense that the replacement of files is simple and automatic in most respects.

IMHO, too much complexity for too little gain (for PHP 5.3 vs 5.4).

With Yii 1.1, there’s the “class” parameter where you can specify you own class to an application component. For me, it is good enough.

It seems that the core team is planning to have this for the 1.1 static classes (like CHtml), too.

According to these slides (see slide #21), Yii2’s minimum requirement is PHP v5.3.8. How come?


There were some very important fixes about hashes, encryption and stuff in 5.3 branch. I think Yii2 will be able to run even on 5.3.0 but I’m preparing people for 5.3.8 :)

Ah, okay. It looked like an arbitrary change, but this explains :)

I know that openssl_random_pseudo_bytes() has issues on Windows until 5.3.4… what important fixes are there between 5.3.4 and 5.3.8?