Re: Re: Annotations in PHP7
| From: | Cesar Rodas | Date: | Mon, 16 Feb 2015 11:22:32 +0000 |
| Subject: | Re: Re: Annotations in PHP7 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-82817@lists.php.net to get a copy of this message | ||
On 16/02/15 12:19, Dmitry Stogov wrote:
> I decided to explain the proposed annotation syntax "in words" to avoid
> misunderstanding
>
> annotations ::= { annotation }.
> annotation ::= '<' STRING '>' | '<' STRING
> '(' expr ')' '>'.
>
> where <expr> is regular PHP expression.
Why not doc-block annotations? So it can be parse/understand that is
already there (Doctrine annotations for instance).
>
> Thanks. Dmitry.
>
>
> On Mon, Feb 16, 2015 at 2:07 PM, Dmitry Stogov <dmitry@zend.com> wrote:
>
>> hi,
>>
>> During discussion of different ways of implementing "Design by Contract"
>> we got an idea of using annotations.
>>
>> BTW: annotations are useful by their own and may be used for different
>> purposes. Support for annotations was proposed long time ago:
>>
>> https://wiki.php.net/rfc/annotations
>> https://wiki.php.net/rfc/annotations-in-docblock
>> https://wiki.php.net/rfc/reflection_doccomment_annotations
>>
>> HHVM already implemented similar concept
>>
>> http://docs.hhvm.com/manual/en/hack.attributes.php
>>
>> I made a quick and dirty PoC that shows how we may implement annotations
>> in PHP7 and how powerful they may be :
>> https://gist.github.com/dstogov/dbf2a8f46e43719bd2c2
>>
>> The test there is self explainable. Of course, annotations just provide a
>> way to add metadata, but doesn't define attribute names or the ways they
>> are going to be used. Only Reflection API to read.
>>
>> There are still a lot of technical problems that have to be solved.
>> Right now, we just need to answer a question - if we like this in PHP7?
>> Thought and opinions are welcome...
>>
>> Thanks. Dmitry.
>>
--
César D. Rodas
Open Source developer
+595-983-161124
PGP: F9ED A265 A3AB C8A1 D145 7368 158A 0336 C707 0AA6
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc
Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc