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

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

Reply via email to