On Mon, Feb 16, 2015 at 1:33 PM, Benjamin Eberlei <kont...@beberlei.de> wrote: > > > On Mon, Feb 16, 2015 at 1:17 PM, Pavel Kouřil <pajou...@gmail.com> 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... >> > >> > Thanks. Dmitry. >> >> Hello, >> >> I'd personally suggest you to consider that the Annotations could be >> classes, something along the lines of >> >> https://msdn.microsoft.com/en-us/library/aa288454%28v=vs.71%29.aspx#vcwlkattributestutorialanchor1 >> >> IMHO it will allow for more usecases and such than simple arrays. > > > They are statements, so you can do whatever. Dimitri just showed scalars, > but it would be possible to do: > > <orm(new Entity(["repositoryClass" => "FooRepository"]))> > > And then getAnnotations returns something along the lines if evaluated by > the PHP Parser: > > "orm" => [new Entity(....), ] > > So your requirement would be possible. >> >> >> Regards >> Pavel Kouril >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >
Hello, while the usage of statements in annotations sound good in theory, I find the need for using the "new" and such as ugly. Thefore, I'd probably still prefer the C# style of doing annotations. Regards Pavel Kouril -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php