Yii 1, Yii 2.0.31 and Yii 3 progress
Hello everyone! We were silent for a month working on all the versions of the framework. Here's what we have so far.
master branch passed all tests on PHP 7.4 immediately. That was quite
a surprise. There are still some issues about PHP 7 compatibility in the issue
tracker. After checking these we're going to tag another release.
New release of Yii 2 was done.
It includes multiple bugfixes and two enhancements. One is about adding
header support to
Request proxy configuration. Another is about expanding support
of Yii 3 style container configuration.
But the main highlight of the release is PHP 7.4 compatibility. That was not easy to achieve it without losing old PHP 5 versions support. It took significant amount of time to explore possibilities and finally we've managed to solve it.
Overall development goes forward but not as fast as I was hoping. It seems overall release time estimate was too optimistic but I still think we'll be able to tag some of the Yii 3 packages and make it easier to try new version by providing a proper application template. It may happen either before 2020 or at the very start of the year.
Now, to the summary of what was done since November.
Concepts, discussions, tutorials
- A detailed example of how to contribute to Yii 3.0.
- Configuration concept prepared by roxblnfk was published for futher discussion.
- Yii-dev-tool enhancements.
- PHP version requirement was raised to 7.4. Code was updated accordingly.
- Error handler design improved.
- Trusted hosts network resolver was added.
- Emitter is now outputting body as a stream avoiding memory issues for large content.
- Error handler got non-verbose mode suitable for production.
- Yii development tool was improved in many ways making it way more convenient to develop Yii 3.
- Router got groups support and then it was improved.
- Middleware dispatcher got some significant improvements.
- View layer got some love.
- Somogyi Márton did experimental split of view layer in separate repository. We are preparing to get good parts of it into Yii 3.
- Ability to run from sub-directory was added.
- Emitter now throws very helpful exception in case HTTP headers were already sent.
Internal guideline corrections
- We've migrated travis from .org to .com. There are still some leftovers but when we'll clear these, there will be less confusion about where the build for a package is.
- Status page was updated with current Yii 3 packages.
- Release cycle page was updated with PHP versions support.
We've participated in GitHub beta funding program together with GitHub team and managed to set it up properly. Also set up Tidelift so now there are two more options to help Yii by filling its development fund.
Tidelift is helpful in another way. They have handy checklists such as providing link to reporting security issues from each repository. While improving the meta some mistakes were found and fixed in Yii repositories.
The issue with it is that it's not as transparent as OpenCollective but I promise to reduce my invoices to OpenCollective by the amount got via Tidelift. Hopefully that would allow to get more people doing nearly full-time Yii development. If you want to spend more time on Yii 3 but can't because of financial reasons, please contact me (Alexander Makarov) and we'll try to arrange something.
I'd like to thank all backers and contributors making Yii 3 possible. We are moving it forward together.