Am 10.05.2011 09:44, schrieb Ferenc Kovacs:
On Tue, May 10, 2011 at 9:01 AM, Chad Fulton<chadful...@gmail.com>  wrote:

On Mon, May 9, 2011 at 10:46 PM, Lester Caine<les...@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'
                        );
            }
    }
}

***************


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to