On Mon, Feb 16, 2015 at 12:42 PM, Dmitry Stogov <dmi...@zend.com> wrote:
> the idea to not evaluate non-constant expressions at all, but just keep > AST and provide interface to read it. > PHP extensions should be able to use them as they like. (evaluate or > insert into AST of function(s), etc). > Ok so this would expose the AST to userland? Because that is not yet done or? As a userland developer I would prefer having the values evaluated, for example using the array expresssion syntax in class properties (only "constants" expressions allowed). Looking at the PHPT more, there seems to be a typo, requires is used in the annotation and requres is in the var_dump? > > Thanks. Dmitry. > > On Mon, Feb 16, 2015 at 2:36 PM, Benjamin Eberlei <kont...@beberlei.de> > wrote: > >> >> >> On Mon, Feb 16, 2015 at 12: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... >>> >> >> oh please yes, yes yes :-) I don't care for the syntax, although this >> looks ok. >> >> One question, when does the php expression get evaluated? >> >>> >>> Thanks. Dmitry. >>> >> >> >