Re: [RFC] [VOTE] Class Constant Visibility

From: Date: Wed, 21 Oct 2015 16:17:40 +0000
Subject: Re: [RFC] [VOTE] Class Constant Visibility
References: 1 2  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
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)

« previous php.internals (#88906) next »