Re: Re: PHP Annotations RFC + Patch
| From: | Benjamin Eberlei | Date: | Sat, 11 Sep 2010 20:02:38 +0000 |
| Subject: | Re: Re: PHP Annotations RFC + Patch | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-49602@lists.php.net to get a copy of this message | ||
Hey everyone,
I want to re-drop my proposal onto the table that is just a shortcut
notation for php class instantiation inside that brackets (omiting the
new keyword):
annotation := [className(classArgs*)]
classArgs := array | string | int | float | ...
Re-pasting my examples (this time from simple to complex):
[ExpectedException("InvalidArgumentException")]
[ExpectedException("InvalidArgumentException", "Expected message", 40")]
[Validation(array("type" => "EMail", "options" =>
array("checkMX" =>
true))]
[JoinTable(array(
"name" => "users_phonenumbers",
"joinColumns" => array(
array("name" => "user_id", "referendedColumnName" =>
"id"),
),
"inverseJoinColumns" => array(
array("name => "phonenumber_id", "referendColumnName" =>
"id",
"unique" => true),
),
)]
The only thing new here would be the brackets [] and the implicit class
instantiation through omitting the new keyword.
i.e. [Foo("bar")] would essentially mean new Foo("bar") when
$refl->getAnnotation() is called.
greetings,
Benjamin
On Sat, 2010-09-11 at 20:24 +0200, Pierre Joye wrote:
> On Sat, Sep 11, 2010 at 8:19 PM, Stas Malyshev <smalyshev@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.
>
> Cheers,
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net |
> http://www.libgd.org
>