On Dec 1, 2012, at 1:39 , Stéphane <stephane.er...@gmail.com> wrote:

> I wonder why did you created your own AOP instead of using/forking the one 
> bundled in SE ?

There isnt a one true AOP approach.
Specifically Johannes AOP Bundle only works on top of the DIC by rewriting 
services. This is quite elegant in many ways but has the disadvantage that for 
any class that is created manually (f.e. models and other value objects) you 
cannot use AOP. Furthermore its basically extending classes and wrapping the 
aspect functionality around the existing code using inheritance (not sure how 
much voodoo it can do to also deal with private methods).

The approach that TYPO3 took is that it essentially rewrites the original code 
and then loads the rewritten code via autoloading. Meaning even if you do a 
manual "new Foo" they can still add aspect functionality. This has even less 
performance overhead in production, since its not using inheritance and not 
adding method calls. However it means that the original code isnt actually 
executed anymore.

Both approaches do require code scanning which can slow down development (and 
yes Symfony2/Doctrine already scan code, but more scanning just means things 
get even slower).

In terms of debuggability I think it is a bit confusing, but indeed less so 
than what people face with events, which is often that people need to resort to 
in the absence of AOP. The TYPO3 approach is even freakier, though I think they 
have an error handler that "fakes" the original line numbers to make debugging 
the original code easier.

At the end of the day, there is nothing stopping you from using Johannes or the 
TYPO3 approach in your project and to publish guidelines etc. I dont think that 
AOP has any place in the components themselves. So aside from creating a 
Symfony2 AOP component, I am not sure what you really expect to happen.

regards,
Lukas Kahwe Smith
m...@pooteeweet.org



-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to symfony-devs@googlegroups.com
To unsubscribe from this group, send email to
symfony-devs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

Reply via email to