Re: Re[2]: Path of the class file of an object
| From: | Jochem Maas | Date: | Mon, 08 Sep 2008 09:24:03 +0000 |
| Subject: | Re: Re[2]: Path of the class file of an object | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-279632@lists.php.net to get a copy of this message | ||
don't top post.
Ali Çevik schreef:
Hi, I guess the word "meaningless" depends on what you are trying to do. So, I guess I have to describe what I'm trying to do. The problem is, I need to pass a php object to javascript via json and then back to php again using json. However, while doing that, I lose the type of the object (because json_encode method or json_decode works independent from the object's class). Thus, I somehow need to typecast. I thought I might hold class name as a property of the object so it would be passed inside json, but type casting would work if and only if I have class file of the object included.pass the class name as a property of the json encoded object and use an autoloader (with properly defined include_path). http://php.net/autoload http://php.net/spl_autoload_register if your developing a framework its hard to imagine your not using autoload in some way already, but there you go.
In case I add a "getClassPath()" like variable to each php class, it would be a great mess. Moreover, what I'm trying to do is developing a framework. Thus, I don't want to force my users to alter their classes and their behaviours. This was my solution to keep the type persistent. However, I would also thankfully appreciate if you have an idea to do that in a better way. thanks, Ali. On Sun, Sep 7, 2008 at 5:35 AM, ANR Daemon <anrdaemon@freemail.ru> wrote:Greetings, "Ali Çevik". In reply to Your message dated Sunday, September 7, 2008, 1:51:33,fileI need a procedure or an implementation that gives path of the classmakeof an object which I pass as a parameter. Example; Assume I have a class file located at C:\htdocs\Foo.class.php In code after I include Foo.class.php; <?php $foo = new Foo(); Echo some_procedure($foo); ?> I'm looking an implementation for that "some_procedure", which wouldablethis program to print C:\htdocs\Foo.class.php . I have been googling around and also checked php.net but I wasn'tatto find anything about this subject. It would be really helpful if someone knows that kind of procedure ortoleast has an implementation of it.The only way I know to do this would be to add a method to your classthegive it to you. class Foo { public function getClassFilename() {return __FILE__;} }Hmm, that should do the trick. Thanks a lot! But still, I wish there were a way of doing that, without alteringclass behaviour.(top posting fixed) Ok, if you prefer backward solution - hook your own error-handler and cause an error in class, then you'll have path to it's file in backtrace. I mean, knowing the filename of this or that function absolutely meaningless, unless you're running into problem of some sort. -- Sincerely Yours, ANR Daemon <anrdaemon@freemail.ru> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php