Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:62444 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51076 invoked from network); 24 Aug 2012 07:01:42 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Aug 2012 07:01:42 -0000 Authentication-Results: pb1.pair.com smtp.mail=peter@likipe.se; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=peter@likipe.se; sender-id=unknown Received-SPF: error (pb1.pair.com: domain likipe.se from 109.74.1.223 cause and error) X-PHP-List-Original-Sender: peter@likipe.se X-Host-Fingerprint: 109.74.1.223 web1.likipe.se Linux 2.6 Received: from [109.74.1.223] ([109.74.1.223:50275] helo=web1.likipe.se) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 0F/43-30159-3D627305 for ; Fri, 24 Aug 2012 03:01:41 -0400 Received: from mail-pb0-f42.google.com ([209.85.160.42]:61617) by web1.likipe.se with esmtpsa (TLSv1:RC4-SHA:128) (Exim 4.77) (envelope-from ) id 1T4ntf-0003Zp-Oz for internals@lists.php.net; Fri, 24 Aug 2012 09:01:36 +0200 Received: by pbbrp8 with SMTP id rp8so2854514pbb.29 for ; Fri, 24 Aug 2012 00:01:34 -0700 (PDT) Received: by 10.68.193.162 with SMTP id hp2mr10562386pbc.34.1345791694248; Fri, 24 Aug 2012 00:01:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.31.227 with HTTP; Fri, 24 Aug 2012 00:01:14 -0700 (PDT) In-Reply-To: References: <50369892.6080106@googlemail.com> Date: Fri, 24 Aug 2012 09:01:14 +0200 Message-ID: To: Sebastian Krebs Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary=047d7b15b08fe09c7504c7fd8b80 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - web1.likipe.se X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - likipe.se X-Source: X-Source-Args: X-Source-Dir: Subject: Re: [PHP-DEV] Aspect Oriented Programming in PHP From: peter@likipe.se (Peter Nguyen) --047d7b15b08fe09c7504c7fd8b80 Content-Type: text/plain; charset=ISO-8859-1 Well, you just have to know and check for the aspects I guess, if you're using wildcards in the joint points. It's no difference than knowing what PHP functions/classes/variables not to overwrite/overload. Besides, you can always debug_backtrace to find out which joint points was executed... Another option is not to use wildcards and define the joint point explicitly. 2012/8/24 Sebastian Krebs > 2012/8/24 Peter Nguyen > > > Your argument is a general issue when refactoring code. Whenever you > > change the name of a method/class, you need to change it in all the > places > > that use it, even in the AOP definitions if you have it of course. The > > advice is just a PHP callable so it works in the same way. > > > I talked about refactoring the joint points, not the advises, but thats not > the point. If I refacter an identifier my IDE (I use PhpStorm, but the > others should be that powerful too) supports me by searching for every > occurence of the identifier, or even without the need to refactor stuff I > can call "find usage". With a string like > > $ 'Classname::method()' > > or > > $ 'Classname->method()' > > I need at least text search, that should work reliable, when no dynamic > strings occur, because with > > $ 'Classname::' . $method > > it's getting hard, if not even impossible. One default case (it's mentioned > in the quickstart of the extension) are the wildcards > > $ 'Classname::do*() > > I guess this would take much effort. Just "refactoring" is not that easy > anymore. > > Don't get me wrong: I like AOP as idea and as concept, but I'm afraid, that > it could lead to scary construction, where noone can trace, what happens > when and why. Also as I mentioned I don't even have any better idea ;) > > Regards, > Sebastian > > > > > > > 2012/8/23 Sebastian Krebs > > > >> Hi, > >> > >> From my users point of view: I would like to see it. Maybe not in this > >> implementation/syntax, especially because it hasn't a special syntax > (but > >> imo it should to make the impact more obvious/prominent). With the joint > >> points as string and the common function call I can imagine it can get > hard > >> to find out, where a specific advise where attached, or which were > attached > >> at all, or just how many. For example I rename a method/class and I will > >> not recognize, that a security advise gets lost, I may realize it as > soon > >> as I find my data on pastebin ;) But I have no idea how it could look > >> like.... > >> > >> Regards, > >> Sebastian > >> > >> > >> Am 23.08.2012 16:36, schrieb Peter Nguyen: > >> > >> Hi, > >>> > >>> AOP (http://en.wikipedia.org/wiki/**Aspect-oriented_programming< > http://en.wikipedia.org/wiki/Aspect-oriented_programming>) > >>> when used > >>> correctly, can make your application really modular. I've seen several > >>> implementations but they all require compiling of code beforehand. > There > >>> is > >>> however a PECL extension now (https://github.com/AOP-PHP/**AOP< > https://github.com/AOP-PHP/AOP>) > >>> that enable > >>> AOP in PHP directly. I was wondering if there are any > >>> interests/possibility > >>> to include AOP into the PHP core? > >>> > >>> Best regards, > >>> > >>> Peter > >>> > >>> > >> > >> -- > >> PHP Internals - PHP Runtime Development Mailing List > >> To unsubscribe, visit: http://www.php.net/unsub.php > >> > >> > > > > > -- > github.com/KingCrunch > --047d7b15b08fe09c7504c7fd8b80--