Hi Benjamin,

I agree with you 100 percent.

Greetings,
Christian

On Mon, 13 Sep 2010 17:38:37 +0200, Benjamin Eberlei
<kont...@beberlei.de> wrote:
> I strongly disagree!
> 
> PHPDocs are for what their name suggests, for comments, not for runtime
> code information. They allow arbitrary characters, their intent is for
> human-readible documentation only.
> 
> Yet they are used for service description (Zend_Soap_Autodiscover,
> Zend_XmlRpc), metadata mapping or phpunits "annotations", just because
> there is nothing better suited.
> 
> Primary difference of Annotations, they are not only human- but also
> enforced to be machine-readable. Annotations are runtime configuration or
> metadata, throwing compile time parse errors when not followed correctly.
> That has nothing to do with documentation, it is an very elegant way to
> extend classes, methods and properties with metadata information,
> configuration and code right next to each other.
> 
> The primary target for annotations are framework and library integrations:
> validation, forms, metadata mapping, static mvc configuration such as
> routing, view selection or acls. Why do these features not exist with
> current php libraries yet? Because developers see php doc blocks for what
> they are: Comments!
> 
> With Doctrine2 and Symfony2 we see some early experiments with annotations
> in PHP Docs, but they only highlight the drawbacks:
> 
> 1. Developers should expect to be able to delete a comment/docblock
> without altering the code-path.
> 2. Errors in the Doc-Blocks "expected formatting" are left for the
> userland developer to detect. IDEs or the PHP Parser simply don't care.
> 3. There is no real difference for a human only readable doclbock starting
> with /** or /*, however PHP just doesnt publish the /* docblocks to the
> userland, leading to countless errors when that single star is missing.
> 4. every IDE or code-highlighting prints them in light grey, making them
> sort of invisible.
> 
> That is why annotations are needed, they make metadata a language level
> construct, not a hack that is possible, because Reflection allows us to
> access the comments of methods, functions, classes, ...
> 
> greetings,
> Benjamin
> 
> On Mon, 13 Sep 2010 15:05:57 +0200, Zeev Suraski <z...@zend.com> wrote:
>> At 20:24 11/09/2010, Pierre Joye wrote:
>>>On Sat, Sep 11, 2010 at 8:19 PM, Stas Malyshev <smalys...@sugarcrm.com>
>>>wrote:
>>> > Hi!
>>> >
>>> >> The separator never was a problem... but I definately don't want to
>>> >> see another 6 months just to define what would the separator be.
>>> >> If we need to drop [] in favor of array support, I vote for ! as
>>> >> separator.
>>> >
>>> > The separator is not a problem (even though 1-char one produces much
>>> > less
>>> > clutter). The cryptic syntax is.
>>>
>>>It seems that there is a misunderstanding about the goals of the
>>>annotations. They are not meant to be read by human being
>>>(javadoc/phpdoc/etc. are) but to be parsed automatically to be used
>>>for services.
>>>
>>>In that sense, to have a syntax closed to one of the best (or less
>>>worst, if you are on the opposed side ;-) syntax out there (c#/.net)
>>>may be a good thing to do, instead of re einventing the php wheel.
>>
>> I'm not sure we've seen a good reason to add annotations instead of
>> using PHPDoc.  Sure, PHPDoc isn't a perfect fit for certain purposes,
>> but I think it certainly falls in the good-enough fit for most
>> purposes.  It's also both machine and human readable, and best of all
>> - it's already there.
>> There should be overwhelmingly strong reasons to add a whole new
>> branch of syntax to PHP, I for one don't see the huge gain
>> annotations bring on top of PHPDoc.
>>
>> Zeev


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

Reply via email to