Re: [RFC] [VOTE] Class Constant Visibility
On Wed, Oct 21, 2015 at 03:54:48PM +0000, Dan Ackroyd wrote:
> Hi Sean, internals,
>
> While I support this RFC, it seems that the actual implementation is
> still under discussion.
>
> In particular, whether the RFC is going to allow protected constants
> in an interface is not clear.
>
> In the text of the RFC, on one line it says: "This RFC propose PHP
> support class constant visibility that mirror the behaviour of method
> and property visibility." This would imply that protected constants
> are not allowed, as protected methods are not allowed in interfaces.
>
> Just below it says: "//Interfaces only support protected/public const,
> and a compile time error will be throw for privates" Which says
> clearly that protected constants _would_ be allowed.
>
> Please can you update the text of the RFC?
>
> Unfortunately, that may need a restart of the voting :-\ However that
> should just be a formality as it seems to be a popular RFC.
>
> cheers
> Dan
>
> --
Hi!
That is an unfortunate mistake on my part. The *proper* way to adjust
visibility of a trait from a class constant is the following.
trait myTrait {
public const FOO = 'bar'
}
class myClass {
use myTrait { FOO as protected; }
}
class myClass {
use myTrait { FOO as private; }
}
We should not allow anything besides public in trait, this mirrors the design of methods.
If this is right (mind just sending an ACK to make sure I got it right this time) I
will update the RFC. Who decides if/when we should restart voting?
thanks
Thread (17 messages)