Re: Reflection API Questions
| From: | Jon Anderson | 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