On Mon, Mar 2, 2015 at 7:13 PM, Julien Pauli <jpa...@php.net> wrote:

> On Wed, Feb 25, 2015 at 10:32 AM, Derick Rethans <der...@php.net> wrote:
>
>> On Sun, 22 Feb 2015, Nikita Popov wrote:
>>
>> > I would like to propose reclassifying our few existing E_STRICT
>> > notices and removing this error category:
>> >
>> >     https://wiki.php.net/rfc/reclassify_e_strict
>> >
>> > As we don't really have good guidelines on when which type of error
>> > should be thrown, I'm mainly going by what category other similar
>> > errors use. I'm open to suggestions, but hope this will not
>> > deteriorate into total bikeshed.
>>
>> Those guidelines where part of the original proposal though:
>> http://grokbase.com/t/php/php-internals/06aq0a1vzx/rfc-e-deprecated
>> Which interestingly mentions your "Abstract static methods" case.
>>
>> And I did write something up (with my opinions of it):
>> http://derickrethans.nl/erecoverableerror.html
>>
>> In any case, some comments on a few of the cases:
>>
>> "Redefining" a constructor
>> - I think that should be retained (or an E_NOTICE) as it's something
>>   that might catch people out. I think it helps enough to warrant it.
>>
>> "Same (compatible) property in two used traits"
>> - I think that should be changed to an E_NOTICE, or not at all, if it's
>>   already an E_NOTICE. For a similar reason as above.
>>
>> "Accessing static property non-statically"
>> - I think this should stay E_STRICT, as it falls in the original
>>   proposal's category of "any rule that reflects common strict
>>   standards, like OOP theory that is considered harmless if not
>>   followed"
>>
>>
> I'm not against removing E_STRICT and reclassifying the errors, however,
> like Derick , I'd like to keep the trait and redefining constructor ones as
> they may really help to spot problems.
>

The redefining constructor notice is already gone with the ctors RFC, so I
won't comment on that. Regarding the trait warning: There is a tradeoff
between a) this notice can spot problems and b) this notice completely
disallows using this feature in professional code. I don't think having the
same property in two traits is in any way fundamentally wrong if the
declarations are compatible, so I don't see why we should (effectively)
completely forbid it.

Nikita

Reply via email to