Reflection API Questions
| From: | Jim Wilson | Date: | Fri, 09 Feb 2007 16:46:44 +0000 |
| Subject: | Reflection API Questions | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-248663@lists.php.net to get a copy of this message | ||
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