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. Thanks. Dmitry. On Mon, Feb 16, 2015 at 2:07 PM, Dmitry Stogov <dmi...@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. >