What about arrays? How do I declare Foo[] ?

http://ocramius.github.io/extremely-defensive-php/#/69

2015-07-12 16:37 GMT-03:00 Larry Garfield <la...@garfieldtech.com>:

> On 07/12/2015 11:16 AM, Marcio Almada wrote:
>
>> Stas,
>>
>> 2015-07-12 5:10 GMT-03:00 Stanislav Malyshev <smalys...@gmail.com>:
>>
>>> Hi!
>>>
>>>  Not completely bogus. At least with typed properties you won't need to
>>>> actually write the docblocks to have the IDE "hints". It's a minor win
>>>> for IDE users too.
>>>>
>>> I don't see "not needing to write docblocks" as a win, quite the
>>> contrary.
>>>
>> Of course it's a win. Or do you like to write docblocks for every
>> single class property or method (even when the member is obvious) just
>> to have a "@var" so your IDE can work?
>>
>> Not to mention you won't get any runtime/compile time check or
>> optimization from docblock tags, that's the main point of having typed
>> properties.
>>
>>  In fact, in a number of projects I worked with, code without
>>> proper documentation (including docblocks) simply wasn't accepted into
>>> the repository.
>>>
>>>  If you are using the term "proper documentation" to justify docblocks
>> everywhere even if they contain just a "/** @var string */", it's a
>> sign we've been using comments against us all this time (even if we
>> called it "doc comments").
>>
>> But thankfully we are moving PHP to another direction. Do you remember
>> the "return types" voting results?
>> https://wiki.php.net/rfc/return_types#vote. That's because "function()
>> : type" is self documented and much more maintainable than than a
>> possibly sloppy "/** @return type */" on top of every method on a
>> codebase.
>>
>>  While I don't think this needs to be mandatory, I also don't see major
>>> difference - so you have to write type instead of docblock, you still
>>> have to write something.
>>>
>>>  But with the benefits already cited above. Docblocks should not be a
>> place for type information anymore, this was a workaround and we've
>> been slowly replacing it with a better solution (opt in types).
>> Property types seems to be the next logical step after adding return
>> types and scalar types.
>>
>
> I don't know why we're even talking about IDEs here.  IDE auto-completion
> isn't the point, anymore than it was the point for scalar type hints or
> return type hints.  It's about the language doing type checking for you and
> static analysis, so that the language can find bugs for you. Eg:
>
> class Foo {
>   public Bar $bar;
> }
>
> $f = new Foo();
> $f->bar = new Baz(); // This line is clearly wrong and the compiler can
> check it for you.
>
> That's what the benefit would be.  Easier IDE auto-completion is a nice
> extra, but not the main goal.
>
> +1 from me in 7.1.
>
> --Larry Garfield
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to