On Thu, 13 Feb 2025, Larry Garfield wrote:
> On Thu, Feb 13, 2025, at 8:16 AM, Tim Düsterhus wrote:
> > Hi
> >
> > Am 2025-02-12 22:31, schrieb Larry Garfield:
> >> I'm still undecided on the RFC overall, but one thing that is
> >> problematic is the phrasing of the messages. Currently, the messages
> >> in the attribute are fragments of an English sentence, seemingly
> >> designed to fit grammatically with a sentence fragment that is coded
> >> into the engine somewhere but not readily available to developers.
> >
> > Yes, the implementation of the error message very closely matches that
> > of #[\Deprecated] (except that there is no since
bit to insert).
> >
> >> From my phrasing I think you can guess my opinion of that.
> >>
> >> That is impossible to document cleanly for English speakers. It will
> >> not translate at all for anyone who is writing in a non-English
> >> language (which people do). People are going to get it wrong more than
> >> they get it right, in any language.
> >>
> >> Instead, the wording should be structured to be a complete sentence,
> >> and the built-in message updated to make that logical. That gives the
> >> developer much more freedom to write a meaningful,
> >> contextually-relevant message in the language of their choice.
> >
> > We're open to adjusting that. Do you have any suggestions? The
> > implementation of #[\Deprecated] works like it does, because PHP itself
> > already doesn't end the error messages with a .
, as it appends `in
> > file.php on line 42`. This makes it inconvenient to have more than one
> > sentence in an error message, which is why we're struggling with coming
> > up with something better.
>
> Just spitballing:
>
> "Return value of foo() is not used, on foo.php line 5: <user text
> here>"
>
> Fiddle with the wording as needed, but by having a colon and then the
> user text, it makes it clear it's a separate statement, and can be as
> flexible as a statement in your chosen language wants to be.
PHP always adds "in file.php on line 42" to the end, so that wouldn't
work.
cheers,
Derick