The Artima Developer Community
Sponsored Link

PHP Buzz Forum
More on AspectPHP

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Sebastian Bergmann

Posts: 313
Nickname: sbergmann
Registered: Sep, 2004

Sebastian Bergmann is the developer of PHPUnit.
More on AspectPHP Posted: Oct 17, 2004 7:11 AM
Reply to this message Reply

This post originated from an RSS feed registered with PHP Buzz by Sebastian Bergmann.
Original Post: More on AspectPHP
Feed Title: Sebastian Bergmann
Feed URL: http://sebastian-bergmann.de/
Feed Description: Geek by nature, PHP by choice.
Latest PHP Buzz Posts
Latest PHP Buzz Posts by Sebastian Bergmann
Latest Posts From Sebastian Bergmann

Advertisement
As I mentioned in my initial blog entry on AspectPHP I currently lack the time to really work on it. What little time I have I rather invest in hacking than in documenting.

AspectPHP currently works similar to what is described here. To work on the AspectPHP runtime, which includes coming up with a "language" to define joinpoints and pointcuts, I need a working prototype. PHP 5's __call(), __get(), and __set() interceptors give me exactly that in the form of "dynamic weaving".

"Dynamic Weaving" means that the sourcecode of every class needs to be transformed to extend a proxy class (AspectPHP_Runtime_Object) that implements the interceptor methods and forwards attribute accesses and method calls to the aspect dispatcher (AspectPHP_Runtime_Registry). This sourcecode transformation can be performed in advance (using a Phing task) or at runtime (using an __autoload()-based classloader).

During the development of AspectPHP I can live with the performance penalty this approach imposes (a benchmark shows a 200% penalty for object attribute access and a 600% penalty for method calls with PHP 5.1.0-CVS).

Once the development on the AspectPHP Runtime has come to a certain point I will implement "static weaving" which transforms the sourcecode to use the aspects directly without the need for a proxy class.

Read: More on AspectPHP

Topic: CEP Logo Previous Topic   Next Topic Topic: Inklog design

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use