Re: Reflection API Questions

From: Date: Fri, 09 Feb 2007 17:01:47 +0000
Subject: Re: Reflection API Questions
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-248668@lists.php.net to get a copy of this message
Check out the runkit extension to PHP (http://www.php.net/manual/en/ref.runkit.php). It should let you do all the class mucking you need to do. jon Jim Wilson wrote:
Dear PHP Users, I have two questions regarding PHP 5's Reflection API (I apologize if this isn't the right list to ask): 1) Is there a way to inject a method into a Class such that future instantiations of that Class will have the method? For example: ------------ Before ----------- class A { // Nothing } ------------ Before ----------- ------------ After ----------- class A { // method which was injected public function injectedFunc($someArg) {
       // ....
} } ------------ After ----------- Obviously I'm not looking for a way to modify class A's source code, just the effective class A specification. I know that PHP supports extending classes and interfaces, but in my use-case that isn't really an option since I don't control the code which instantiates the objects, and they're not using any kind of Factory pattern for object construction that I could overload with my extended implementation. 2) Is there a way to change a method which already exists, as in by overwriting it with a new function? I'm looking to do the equivalent of JavaScript's 'function as member' treatment, where it's easy to do something like: ------------ Snip ----------- // Obj is some object Obj.meth = function (arg) { /* do something with arg */ }; // Then later on ... Obj.meth('hello there'); ------------ Snip ----------- Thanks in advance for any help, or for redirecting me to the correct list if this isn't it. -- Jim R. Wilson


« previous php.general (#248668) next »