On Tue, May 10, 2011 at 5:45 AM, Rasmus Lerdorf <ras...@lerdorf.com> wrote:
> On 05/10/2011 01:10 AM, Jordi Boggiano wrote: > >> On Tue, May 10, 2011 at 10:02 AM, Lars Schultz >> >>> 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. >>> >> >> I think your example shows very well why annotations are good, it's >> much more concise. >> > > By concise, you mean shorter, easier to read? > > I have a really hard time looking at: > > > <Entity("users")> > class User { > <Column("integer")> > <Id> > <GeneratedValue("AUTO")> > <ManyToMany("Phonenumber")> > protected $Phonenumbers; > } > > as a PHP user and instantly understanding what this does. It looks > completely foreign from a PHP syntax point of view. > > Whereas: > > > 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' > ); > } > } > } > > is way more verbose, but I can instantly grok what is going on without > learning a new syntax, without waiting for my opcode cache to support it, > and without waiting for my editor to understand the new syntax. > The editor argument is out of place do you really think that the engine should we built around what IDE supports? > Don't underestimate the difficulty in getting opcode cache support for > something like this. If you think the engine code is complex, try digging > into the opcode cache code. It will be much much harder to write the opcode > cache support than it was to write the engine code for it. > > I also have a personal problem with code that needs to introspect on every > web request in order to run. But that is likely because I am old and gray > and used to stare sceptically at the assembly output of the first C > compilers to see if I could come up with an alternative that would take > fewer cycles. > > -Rasmus > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >