On Wed, Mar 16, 2016 at 5:36 PM, Phil Sturgeon <pjsturg...@gmail.com> wrote:
> Hello everyone, > > I have completed the draft for an RFC, to add Typed Properties. The > patch has been written by the one and only Joe Watkins. > > https://wiki.php.net/rfc/typed-properties > > I would really appreciate constructive feedback on this RFC, with a > few areas especially: > > 1. How scared are we that integers can be expanded to floats on runtime? > 2. This whole temporary nullability situation, where unset properties > will error on attempted usage if not set. Should they instead error > after the constructor has been called if they are still not holding a > value? > > 3. Weak vs Strict. Right now this is entirely strict, with no > declare() to change mode. Reasons for this vary, from various sources, > but include "Not sure how to implement it" and "Well people should not > be using properties as part of their public API". > > Help on 3 would be appreciated. > > Also let's please avoid "PHP IS TURNING INTO JAVA" and the other > rather common rhetoric. Strict Type Hinting might have been seen as a > battleground for fans of strict and fans of weak to fight through a > keyboard, but this RFC will not be the repeat. > > We'll have a nice, orderly, constructive conversation about this RFC, > and improve the patch as you all provide feedback. > > Let me know what you think folks! > Thanks for the RFC. I love it. Some points: 1. You should really try not to open any can of worms with regard to other already defined parts of the language: - Assume type juggling is a given, use that exact same rules - Assume strict/weak is a given, don't try to change this. - Document how public int $var; works with regard to default type, explicitly define it outside the scope of nullable types and delegate decision forward to a potential RFC in that area. Regarding your bullets then: 1. This point is outside the scope of this RFC, it might be relevant when we discuss changing type juggling to be more consistent. 2. This is propably the critical point of this RFC, I think given how public function foo(int $i) forces type juggling, typed properties should force juggling to. This must be after the constructor, because public stdClass $foo; would otherwise never work. 3. Weak vs strict: Outside of this RFC, assume that it is strict when declared, otherwise weak for consistency with the status quo. > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >