Re: [PHP-DEV] Remove warning when parsing datetime with + symbol?

2022-12-02 Thread Derick Rethans
On Mon, 28 Nov 2022, Paul Dragoonis wrote:

> On Mon, 28 Nov 2022, 16:32 Christoph M. Becker,  wrote:
> 
> > On 28.11.2022 at 16:50, Derick Rethans wrote:
> >
> > > On Thu, 24 Nov 2022, mickmackusa wrote:
> > >
> > >> Can anyone explain to me why it is desirable/beneficial for the DateTime
> > >> class to store a warning that trailing characters were ignored while
> > >> parsing a date/time string with the + symbol in createFromFormat()?
> > >
> > > I have no idea why I decided that was a good idea back all these years,
> > > and I'm perfectly happy to remove that restriction from PHP 8.3
> > > forwards — it's too late to do that in PHP 8.2 now, as it's being
> > > released next week.
> >
> > That would appear to consitute a BC break.  From the docs:
> >
> > | If this format specifier is present, trailing data in the string will
> > | not cause an error, but a warning instead
> >
> > This can be used to parse the date (without the +, parsing may fail),
> > but still be able to return a message about ignored characters to the user.
> >
> 
> We are allowed to break BC in minor version upgrades, Chris.
> 
> We can allow this is 8.3 I think, rather than waiting for 9.0
> 
> What do you think?

No, we don't break BC for minor gains. If Christopher says that this is 
a documented feature, then there is even less opportunity to do so.

I'll see if I can come up with a different letter to allow for just 
ignoring trailing data.

cheers,
Derick

-- 
https://derickrethans.nl | https://xdebug.org | https://dram.io

Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support
Host of PHP Internals News: https://phpinternals.news

mastodon: @derickr@phpc.social @xdebug@phpc.social
twitter: @derickr and @xdebug

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Re: [PHP-DEV] Remove warning when parsing datetime with + symbol?

2022-11-28 Thread Paul Dragoonis
On Mon, 28 Nov 2022, 16:32 Christoph M. Becker,  wrote:

> On 28.11.2022 at 16:50, Derick Rethans wrote:
>
> > On Thu, 24 Nov 2022, mickmackusa wrote:
> >
> >> Can anyone explain to me why it is desirable/beneficial for the DateTime
> >> class to store a warning that trailing characters were ignored while
> >> parsing a date/time string with the + symbol in createFromFormat()?
> >
> > I have no idea why I decided that was a good idea back all these years,
> > and I'm perfectly happy to remove that restriction from PHP 8.3
> > forwards — it's too late to do that in PHP 8.2 now, as it's being
> > released next week.
>
> That would appear to consitute a BC break.  From the docs:
>
> | If this format specifier is present, trailing data in the string will
> | not cause an error, but a warning instead
>
> This can be used to parse the date (without the +, parsing may fail),
> but still be able to return a message about ignored characters to the user.
>

We are allowed to break BC in minor version upgrades, Chris.

We can allow this is 8.3 I think, rather than waiting for 9.0

What do you think?



> --
> Christoph M. Becker
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>
>


Re: [PHP-DEV] Remove warning when parsing datetime with + symbol?

2022-11-28 Thread Christoph M. Becker
On 28.11.2022 at 16:50, Derick Rethans wrote:

> On Thu, 24 Nov 2022, mickmackusa wrote:
>
>> Can anyone explain to me why it is desirable/beneficial for the DateTime
>> class to store a warning that trailing characters were ignored while
>> parsing a date/time string with the + symbol in createFromFormat()?
>
> I have no idea why I decided that was a good idea back all these years,
> and I'm perfectly happy to remove that restriction from PHP 8.3
> forwards — it's too late to do that in PHP 8.2 now, as it's being
> released next week.

That would appear to consitute a BC break.  From the docs:

| If this format specifier is present, trailing data in the string will
| not cause an error, but a warning instead

This can be used to parse the date (without the +, parsing may fail),
but still be able to return a message about ignored characters to the user.

--
Christoph M. Becker

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php



Re: [PHP-DEV] Remove warning when parsing datetime with + symbol?

2022-11-28 Thread Derick Rethans
On Thu, 24 Nov 2022, mickmackusa wrote:

> Can anyone explain to me why it is desirable/beneficial for the DateTime
> class to store a warning that trailing characters were ignored while
> parsing a date/time string with the + symbol in createFromFormat()?

I have no idea why I decided that was a good idea back all these years, 
and I'm perfectly happy to remove that restriction from PHP 8.3 
forwards — it's too late to do that in PHP 8.2 now, as it's being 
released next week.

cheers,
Derick

-- 
PHP 7.4 Release Manager
Host of PHP Internals News: https://phpinternals.news
Like Xdebug? Consider supporting me: https://xdebug.org/support
https://derickrethans.nl | https://xdebug.org | https://dram.io
twitter: @derickr and @xdebug

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

[PHP-DEV] Remove warning when parsing datetime with + symbol?

2022-11-24 Thread mickmackusa
Can anyone explain to me why it is desirable/beneficial for the DateTime
class to store a warning that trailing characters were ignored while
parsing a date/time string with the + symbol in createFromFormat()?

Basic example: https://3v4l.org/Sod9o

$dt = DateTime::createFromFormat('h:i:A+', '01:31:PM - 03:00:PM');
var_export(DateTime::getLastErrors());

Output:

array ( 'warning_count' => 1, 'warnings' => array ( 8 => 'Trailing data',
), 'error_count' => 0, 'errors' => array ( ), )

Docs:
https://www.php.net/manual/en/datetimeimmutable.createfromformat.php#:~:text=If%20this%20format,instead

I mean, why would I welcome the warning when I explicitly stated that I
want to ignore the trailing characters?

If there is longer a good reason for the warning, can it be removed from
the language?

If there is some benefit from having this feedback, then could it be moved
to be a new property of the datetime object?

To programming purists who hate generating notices and warnings, this
probably feels like a wart on the language.

Please enlighten me.

mickmackusa