Re: annotations again

From: Date: Tue, 10 May 2011 08:02:45 +0000
Subject: Re: annotations again
References: 1 2 3 4 5 6 7 8 9 10 11 12 13  Groups: php.internals 
Request: Send a blank email to internals+get-52201@lists.php.net to get a copy of this message
Am 10.05.2011 09:44, schrieb Ferenc Kovacs:
On Tue, May 10, 2011 at 9:01 AM, Chad Fulton<chadfulton@gmail.com> wrote:
On Mon, May 9, 2011 at 10:46 PM, Lester Caine<lester@lsces.co.uk> wrote:
*IS* it clear by now that the majority of users want this?
For what it's worth, I still oppose Annotations.
And the argument that 'You don't have to use it' does not wash either since once it has
been
pushed in, some of the libraries we are using are going to start
requiring
it simply because those developers do like the idea, but it does not necessarily mean that THE CURRENT PROPOSAL is the right way of doing it?
I especially oppose the complexity of the current proposal. One of the reasons I prefer PHPDoc to the proposed Annotations is because they're a simple key=>value syntax.
that would be the same argument that we don't need objects because we have arrays, and if you only need something to store your structures, then both can be used for that.
I'm already doing my coding in PHP - why do I have to code in a new sub-language when all I want is a litte bit of meta-data?
nobody is forcing you to use annotations, it won't replace the docblocks.
My main question is: Why do we need more than key=>value? When you say that "everyone" supports annotations (if that is true), are you sure they actually want more than key=>value?
at least Doctrine, Symfony and FLOW3 does. Sebastian expressed that he is fine with the current Docblock support for PHPUnit. the FLOW3 used to use single key values in the past, but I'm not familiar with the current situation. for actual use-cases you can check http://blog.seric.at/2011/05/03/annotations-with-symfony2/ or http://www.doctrine-project.org/docs/orm/2.0/en/reference/annotations-reference.html#annref-column
Discussion of this does not seem to appear in your "Why do we need Class Metadata?" section.
I also think that it would be a good idea to link or describe annotations in general, because it seems that nobody bothers to read that up without joining the conversation... Tyrael
From the user-end perspective, what I don't understand is this: What is the goal of having Annotations embedded in PHP? To nail down a common syntax? To provide an interface for meta-information on a class? Why can't this be PHP code? Why should I have to learn a whole new kind of syntax? We already have a common syntax (PHP interface) for this as well as an interface (static Class-functions/Object-methods). To explain what I mean, I'll use the example provided in the RFC. Could anyone please explain the advantages of having "passive" annotations over "active" PHP Code. <Entity("users")> class User {
    <Column("integer")>
    <Id>
    <GeneratedValue("AUTO")>
    protected $id;
    // ...
    <ManyToMany("Phonenumber")>
    protected $Phonenumbers;
} *** Example *** class User implements EntityAnnotation { protected $id; protected $Phonenumbers; public function getEntityAnnotation(){ return new User_EntityAnnotation(); } } class User_EntityAnnotation { public function getEntityName(){ return 'users'; } public function getColumnInfo($property){ switch( $property ) { case 'id': return array( 'column'=>'integer', 'isPrimary'=>true, 'autoIncrement'=>true ); case 'Phonenumbers': return array( 'manytomany'=>'Phonenumber' );
	    }
    }
} ***************

« previous php.internals (#52201) next »