On Tue, 18 Dec 2012, Adam Harvey wrote: > On 18 December 2012 04:52, Lars Strojny <l...@strojny.net> wrote: > > I would go with DateTimeValue or DateTimeImmutable as well. > > +1. I'd prefer DateTimeImmutable personally because it describes what > it is better than the other options.
That's what I have changed it to now[1]. I've also modified DatePeriod[2] to allow for immutable objects to be returned. Right now, it will return DateTimeImmutable objects if the start date object is also DateTimeImmutable. In case it is a DateTime object, or an ISO8601 date-string, the returned objects are of the DateTime class[3]. Sebastian had responded off-list that he'd rather have DateTime inherit from DateTimeImmutable, instead of the current variant where DateTimeImmutable inherits DateTime. While this OO-design principle wise makes perfect sense, practically it is not as handy. I've played with a patch to implement it and it works, but lots of messages are now "blah blah wants a DateTimeImmutable class" instead of "blah blah wants a DateTime class". Although I think having a DateTimeImmutable is a good thing, I don't want to confuse too many people (novices!) with weird OO terms. And in most cases, people don't care whether DateTime is immutable or not. Besides that, it also made the change and the code more complex and duplicated. Because of this, I didn't pursue this patch any further. [1] http://git.php.net/?p=php-src.git;a=commit;h=6b48ae4580a0e97f7df4f1733eca345755110b96 [2] http://git.php.net/?p=php-src.git;a=commit;h=042ddf371e84fbb7ba1326e7bd45888e63fb30ef [3] http://git.php.net/?p=php-src.git;a=blob;f=ext/date/tests/date_period-immutable.phpt;h=0ec4b4a13025b9494833aa90fa64be7d95f8a261;hb=042ddf371e84fbb7ba1326e7bd45888e63fb30ef cheers, Derick -- http://derickrethans.nl | http://xdebug.org Like Xdebug? Consider a donation: http://xdebug.org/donate.php twitter: @derickr and @xdebug Posted with an email client that doesn't mangle email: alpine -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php