Hi,
A mere year after releasing Version 5.3.0 (Version 5.3.0 30-June-2009)
you are dropping PHP 5.2 support.
This is a very interesting decision as 5.3.0, compatibility wise, is a
major release. I always felt it was PHP 6.0 but it was not called so
because there was a development branched called that (which was later
abandoned).
Serious BC breaking changes include
Where previously the function would accept the by-value argument, a
fatal error is now emitted.
This broke Drupal 6 big time and while core has been fixed, contrib is
a bit slower to adapt. Previously, it was possible to pass in simply
NULL
if you did not care about the by-reference argument.
Also, the deprecation of ereg will affect Drupal 6 over its lifetime
as the module install / enable functionality uses ereg in a way that
can't be fixed: as it is not on a performance critical code path noone
bothered to rewrite the truly ancient directory scanning function
which takes an ereg as it's argument earlier. And we can't break APIs
in a minor release so this can only change in Drupal 7 which is poised
to be released in a few months.
CakePHP had problems with PHP 5.3
http://i.justrealized.com/2009/08/16/cakephp-php-deprecated-error-warning/
and while I am not sure whether these problems got fixed or not, one
year is not a lot of time and so anyone happening to use older CakePHP
for whatever reasons is toast.
Joomla had its share of problems
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=17150
but they are fixed now, yes. I can repeat what I said about forcing
new versions.
Then there is the date_default_timezone_set / date.timezone snafu.
While as a Drupal core developer I am so eager to use closures
finally I can't really endorse forcing everyone to switch to another
major version a mere two years after EOLing PHP4. That's fast... too
fast.
Kind regards
Karoly Negyesi
Disclaimer: this email only reflects my own personal opinion. Even if that.
hi,
Hi,
A mere year after releasing Version 5.3.0 (Version 5.3.0 30-June-2009)
you are dropping PHP 5.2 support.
We still support 5.2.
There is a huge misunderstanding of "end of active support". It means
that only critical bugs (security related) will be fixed in 5.2. It
does not mean that 5.2 is not supported anymore.
This is a very interesting decision as 5.3.0, compatibility wise, is a
major release. I always felt it was PHP 6.0 but it was not called so
because there was a development branched called that (which was later
abandoned).Serious BC breaking changes include
Where previously the function would accept the by-value argument, a
fatal error is now emitted.
Not sure about this one. Do you have an example please?
The BC breaks are listed here (required changes due to bugs or bad behaviors) :
http://php.net/manual/en/migration53.php
Also, the deprecation of ereg will affect Drupal 6
Deprecation is only a message when and only when the error reporting
level is set to display deprecation messages. The deprecated functions
still work as before. Please see http://www.php.net/error_reporting
Then there is the date_default_timezone_set / date.timezone snafu.
It is now required as nobody read the manual. Without it you simply
expect date/time features to work correctly while relying on random
timezone or none at all.
While as a Drupal core developer I am so eager to use closures
finally I can't really endorse forcing everyone to switch to another
major version a mere two years after EOLing PHP4. That's fast... too
fast.
5 years is not too fast. Also again, it is not EOL. Distributions will
also take care of back porting what they have to for their releases
lifetime. But we can't. We don't have the resource nor the time to
maintain minor releases for 10 years. It is also important to notice
that clean code running well with 5.2 will run just as fine with 5.3
as well (yes, clean is all relative but I hope you understand my point
:).
Cheers,
Pierre
@pierrejoye | http://blog.thepimp.net | http://www.libgd.org
Where previously the function would accept the by-value argument, a
fatal error is now emitted.
Not sure about this one. Do you have an example please?
Erm, you do realized that I copied that from the handbook page? Example:
<?php
function a(&$x) {}
a(NULL);
?>
PHP Fatal error: Only variables can be passed by reference in
/var/www/u/sites/all/modules/awesomerelationships/x.php on line 4
Also.
Extensions. APC to this day does not have a stable release for PHP
5.3. Neither has XCache. I am not even sure how do you imagine
anyone much less everyone upgrading to 5.3 with a production site
without a stable code cache...?
Also note xdebug has a PHP 5.3 compatible release for less than a month.
Regards
NK
Extensions. APC to this day does not have a stable release for PHP
5.3. Neither has XCache. I am not even sure how do you imagine
anyone much less everyone upgrading to 5.3 with a production site
without a stable code cache...?
Sorry, apparently XCache 1.3 version does work with 5.3 it's only the
homepage of it that does not mention this :)
hi,
Where previously the function would accept the by-value argument, a
fatal error is now emitted.Not sure about this one. Do you have an example please?
Erm, you do realized that I copied that from the handbook page? Example:
No, as you did not show any code and I was not sure what you meant
exactly. Thanks to have clarified this case.
Also.
It is not the EOL for 5.2.
Cheers,
Pierre
@pierrejoye | http://blog.thepimp.net | http://www.libgd.org
Am 25.07.2010 11:44, schrieb Karoly Negyesi:
Where previously the function would accept the by-value argument, a
fatal error is now emitted.Not sure about this one. Do you have an example please?
Erm, you do realized that I copied that from the handbook page? Example:
<?php
function a(&$x) {}
a(NULL);
?>
PHP Fatal error: Only variables can be passed by reference in
/var/www/u/sites/all/modules/awesomerelationships/x.php on line 4
Thanks god that tis happens to force developers to work clean
NULL
is not a reference so th real error os that such things
ever worked
Extensions. APC to this day does not have a stable release for PHP
5.3. Neither has XCache. I am not even sure how do you imagine
anyone much less everyone upgrading to 5.3 with a production site
without a stable code cache...?
That is not a php-problem and http://eaccelerator.net/ works
Also note xdebug has a PHP 5.3 compatible release for less than a month.
the question is not how long, the question is does it have
Hello
2010/7/25 Karoly Negyesi karoly@negyesi.net:'
Extensions. APC to this day does not have a stable release for PHP
5.3. Neither has XCache. I am not even sure how do you imagine
anyone much less everyone upgrading to 5.3 with a production site
without a stable code cache...?
You should check your sources better regarding APC, have a look at the
APC 3.1.3:
http://pecl.php.net/package-info.php?package=APC&version=3.1.3
Even before 5.3.0 was released, we worked on making APC compatible
with 5.3 which was released only 1 month and 2 weeks after the
release. Even the next release of APC thats going beta soon is having
full support for the latest development branch (5.3.99).
--
regards,
Kalle Sommer Nielsen
kalle@php.net
I said 'stable'. Last I have seen http://pecl.php.net/package/apc the
latest stable was 3.0.19.
Regards
Karoly Negyesi
Am 25.07.2010 11:17, schrieb Karoly Negyesi:
This is a very interesting decision as 5.3.0, compatibility wise, is a
major release. I always felt it was PHP 6.0 but it was not called so
because there was a development branched called that (which was later
abandoned).
This is simply not true
A clean designed application has to run the whole time with
error_reporting = E_ALL
| E_STRICT
and so you should have seen
the problems long ago
This broke Drupal 6 big time and while core has been fixed, contrib is
a bit slower to adapt. Previously, it was possible to pass in simply
NULL
if you did not care about the by-reference argument.
The problem is that the developers of drupal, joomla, wordpress
are not working error_reporting = E_ALL
| E_STRICT
as i do since
teh first day i use php even on production servers
While 122 installations of our own software throwing up to 10
warnings a month many other software rides a DOS-attack against mysql
if rsyslog is using a database
Also, the deprecation of ereg will affect Drupal 6 over its lifetime
as the module install / enable functionality uses ereg in a way that
can't be fixed: as it is not on a performance critical code path noone
bothered to rewrite the truly ancient directory scanning function
which takes an ereg as it's argument earlier. And we can't break APIs
in a minor release so this can only change in Drupal 7 which is poised
to be released in a few months.
Seems that you do not understand what deprecated means?
See that such calls are using a @ before to not make crazy
peopole like me with thousands of warnings and you have time
enough to clean your code
Then there is the date_default_timezone_set / date.timezone snafu.
If this is a problem the sysadmin did not his job
date.timezone = "Europe/Vienna" in php.ini exists
since years an dshould be set in all clan server setups
On Sunday 25 July 2010 05:55:53 am Reindl Harald wrote:
A clean designed application has to run the whole time with
error_reporting =E_ALL
|E_STRICT
and so you should have seen
the problems long agoThis broke Drupal 6 big time and while core has been fixed, contrib is
a bit slower to adapt. Previously, it was possible to pass in simply
NULL
if you did not care about the by-reference argument.The problem is that the developers of drupal, joomla, wordpress
are not working error_reporting =E_ALL
|E_STRICT
as i do since
teh first day i use php even on production servers
One catch here is that E_STRICT
implies no PHP 4 compatibility, as E_STRICT
chokes on PHP 4-style class usage, etc. Drupal 6 had PHP 4 compatibility so
E_STRICT
was not an option. The core system was developed to E_ALL
standards,
but not all add-on modules (which are the lifeblood of any modular framework)
are. I cannot speak for other projects but since Joomla, Wordpress, and
CakePHP all were PHP 4-friendly until their most recent versions at least I
suspect the story is much the same.
I'm not disagreeing with you about writing pedantically correct code from the
get-go (I've been a strong advocate of that in Drupal for quite some time),
but when you have a code base that goes back nearly a decade and need to not
lock out casual module developers who don't understand the intricacies of
error level configuration and don't have root on their servers it's
(unfortunately) not as simple a question as you make it out to be.
That said, I'm actually against the removal of $foo(), not for BC reasons but
because call_user_func()
is not a viable replacement (it's actually
considerably slower), $foo() is much easier to read (IMO), and because I've
never once been confused by ::$ that I can recall.
--Larry Garfield
Larry Garfield wrote:
One catch here is that
E_STRICT
implies no PHP 4 compatibility, asE_STRICT
chokes on PHP 4-style class usage, etc. Drupal 6 had PHP 4 compatibility so
E_STRICT
was not an option. The core system was developed toE_ALL
standards,
but not all add-on modules (which are the lifeblood of any modular framework)
are. I cannot speak for other projects but since Joomla, Wordpress, and
CakePHP all were PHP 4-friendly until their most recent versions at least I
suspect the story is much the same.
I came to the game JUST as PHP5 was creeping out into production, and so never
ran PHP4 locally, however all of the projects I've been involved with have run
happily on PHP4 and any code I've added has had to be compatible. It has taken
several months to 'accommodate' PHP5.3, and some projects STILL will not run
cleanly with it, so while people are pushing changes that THEY think are good
ideas, please also bear in mind that PHP4 IS only just starting to be replaced,
and PHP5. provides a cleaner base to move that code forward to!
Now that we have 'lost' the target of PHP6, maintaining a stable platform for
the time being is VERY important! Currently PHP5.2 is that stable platform.
--
Lester Caine - G8HFL
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk//
Firebird - http://www.firebirdsql.org/index.php
I really do not understand you
First you would like to see a incomatible change
without any sense because you do not like some code
On the other hand you are crying about the changes in 5.3
because your code which can not live with it since
you ignored warnings long time ago
So this sounds like "bc does not interest me as long it affects
me personally"
Am 25.07.2010 11:17, schrieb Karoly Negyesi:
[PHP-DEV] Please reconsider supporting PHP 5.2
A mere year after releasing Version 5.3.0 (Version 5.3.0 30-June-2009)
you are dropping PHP 5.2 support.This is a very interesting decision as 5.3.0, compatibility wise, is a
major release. I always felt it was PHP 6.0 but it was not called so
because there was a development branched called that (which was later
abandoned).Serious BC breaking changes include
Am 23.07.2010 00:54, schrieb Karoly Negyesi:
[PHP-DEV] Remove variable function and method calls
Given that call_user_func exists I would recommend to remove $foo()
from PHP Next.Observe the "logic" in the following examples:
$foo();
new $foo();
classname::$foo;
classname::$foo();There is a word for this and that word is madness.
The simplest is to nuke $foo().
call_user_func()
is a perfect replacement.
hi Reindl,
I really do not understand you
Please do not top post and (re) consider the tone of your posts, in
general. It could be a language barrier but we are here to discuss
technical issues in the most friendly way.
Cheers,
Pierre
@pierrejoye | http://blog.thepimp.net | http://www.libgd.org
So this sounds like "bc does not interest me as long it affects
me personally"
You have this backwards. BC surely interests me but there is no BC,
there is only a pretense of BC so why not break it as we see fit? And
because of this pretense I have asked not to stop supporting PHP 5.2.
Regards
Karoly Negyesi
So this sounds like "bc does not interest me as long it affects
me personally"You have this backwards. BC surely interests me but there is no BC,
there is only a pretense of BC so why not break it as we see fit? And
because of this pretense I have asked not to stop supporting PHP 5.2.
Arguing the same thing in circles is just wasting resources. Could stop your posts until you have something novel to post (and have thought it over and maybe spend a second to not look like a whiney user, but actually as someone who wants to contribute to improve the situation)?
I read you are interested in QAing, so I suggest you check out http://qa.php.net/.
Get setup to run at least the RC's (better yet also the alpha/beta releases, heck even the nightly snapshots) report your findings and assist the doc team in writing the migration guides.
regards,
Lukas Kahwe Smith
mls@pooteeweet.org