Hey all,
I know we're been talking here or there about SMF requirements for next versions. Here it is, for you to know, how we're looking at it and where we are, today. Please feel free to let me know what you think, any feedback and suggestions are welcome!
SMF 2.1 minimum requirement: PHP 5.1 (recommended: PHP 5.3+)
We are dropping PHP 4 support in SMF (yes, PHP 4.1.0 is still supported by SMF 2.0), and require at least PHP 5.1 for SMF 2.1.
A few benefits:
- we are able to clean up the code, from many bits that are cluttering it, needed for the messy, old, and buggy PHP 4 and pre-PHP 5.1 platforms support
- make use of PHP 5.1 new features, functions available, that would otherwise require workarounds
- use a few more reliable PHP support for filesystem operations, as an example of the former
- more secure, for all your installed sites as well as SMF
Now, the thing is, PHP 5.1 itself is an old version, long left without security support from PHP developers (PHP 5.2 even, is no longer supported for security!). However, 5.1 is enough for the goals of the 2.1 release, for all we see. SMF 2.1 is not a breakthrough of sorts, it's a cleaned up and improved 2.0. While we're adding even a few object oriented bits of code, they're very localized bits, without changing the architecture and style of the codebase - not for 2.1.
If you wish to check your PHP version on your hosting server, you may want to use:
Using phpinfo() (http://wiki.simplemachines.org/smf/Phpinfo()_-_What's_that,_then)
To check out the current requirements for SMF 1.1.16 and SMF 2.0, you may want to see:
Requirements and recommendations (http://wiki.simplemachines.org/smf/Requirements_and_recommendations)
SMF 3.0 minimum requirement: PHP 5.3+ (recommended: 5.4+)
While the first is not likely to raise significant issues at this time, this one is somehow different, and I will ask for your attention, feedback, and help, now, and in time, for us to know:
For SMF 3.0, we are starting off with PHP 5.3 as minimum required PHP version: the current *old stable* PHP major version. (the current stable is 5.4). This will have a long array of benefits, most notably enable us to build SMF 3.0 as an object oriented forum platform, easily extensible and taking advantage of PHP 5.3 features and functionalities for a simple, clean, codebase, on par with good methologies and practices for web development.
I will note, however, that
at this time, last statistics I saw show PHP 5.2 used on a large number of servers, with 5.3 coming along in time, although we don't know how many of them are shared hosts used by SMF admins, or servers used by SMF sites. Also, I expect this will continue to change in the next year, specially since, I will note again:
5.2 is no longer in active security support by PHP, and it is unfortunate to see servers running unsecure and likely buggy PHP versions. It exposes them to security issues, and your site with them. Which is why I would strongly recommend to check up with your host regarding upgrading their PHP, to avoid issues on their server,
no matter what version of SMF you're using. In 1-1.5 years, I expect that PHP 5.3 support to become (truly) widespread. (I would hope 5.4 would, but that one likely won't. :D)
I intend to keep an eye on this, and on your reports. We have some statistics of SMF installations, but they're not accurate enough for us to be sure what are our users currently running. The main point is simple: we want SMF to evolve, to be able to build it on current platforms, for you to be able to take advantage of its features on a secure and reliable platform to run it on. It all comes down to:
- we are going to support SMF on older platforms for as long as there is a need for them in the SMF community (SMF 1.1.x runs on PHP 4, SMF 2.0 runs on PHP 4.1.0, for SMF 2.1, PHP 5.1). So if you cannot upgrade at some point to a future major/minor SMF version, you can use older versions: we're supporting them for security at least, for as long as needed.
- in the same time, trying too much to support platforms no longer supported by their makers, would mean doing so at the expense of users sites security and reliability,
- and it would keep SMF codebase without significant improvements in terms of extensibility, easiness to build on, reliability, to enumerate just a few.
Which is why we're looking to gradually switch to better platforms and take advantage of newer and better web technologies and programming paradigms and practices. But, we need you to be with us on this, if you're willing to: to try to keep your server at the very least on the currently supported platforms, to tell us your needs and thoughts, to ask your host to upgrade if they're still running unsecure PHP versions, to inform yourself and think about your hosting plans starting as soon as it is convenient for you to do so: there are many hosts on 5.3 already (although, SMF 3.0 is more than an year down the road likely, and for 2.1 please see above), so that we're all able to move forward.
At the end of the day, I've said it before, allow me to say it again: SMF developers are not building SMF only for ourselves, but for our users and our community. And it's up to you to tell us your needs, possibilities, and thoughts, and it's up to you to help us know how far we can go in the direction of a better software, that is serving your needs as it should.
Please, do let us know your thoughts on these plans. Any feedback, information, and suggestions, are most welcome.
Glad to see the decision to step away from older versions of PHP and to take advantage of the newer functionality that newer releases of PHP have to offer. :D
Norv, can you post a link to this in the Developer Blog board to get it more attention?
Noted.
I'm going to post a few simplified notes, and point to this topic. (which expands more :) )
$smcFunc won't exist in 3.0, I know that for sure. Not sure what's been done or going to be done on that front in 2.1.
Of course, you could call the instantiated object smcFunc, just for old time's sake.
My paid host is "client version: 5.0.91" while the free host I use has 5.5 ???
(Ninja'd by Motoko :P) I doubt they're really using PHP 5.5, since it's not even in beta yet... are you sure you aren't checking MySQL?