Re: Re[2]: Path of the class file of an object

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Correct me if I'm wrong but, unless I have a common folder for my class
files, such as "/classes/", an autoloader has nothing to do with solving my
problem. I get the impression that there might not be another way of solving
the problem too, sadly. I need to force my users to put all their class
files in a single directory. And it's rather messy..


On Mon, Sep 8, 2008 at 12:24 PM, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:

> 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@xxxxxxxxxxx> wrote:
>>
>>  Greetings, "Ali Çevik".
>>> In reply to Your message dated Sunday, September 7, 2008, 1:51:33,
>>>
>>>  I need a procedure or an implementation that gives path of the class
>>>>>>>
>>>>>> file
>>>
>>>> of
>>>>>>> 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 would
>>>>>>>
>>>>>> make
>>>
>>>> this program to print C:\htdocs\Foo.class.php .
>>>>>>> I have been googling around and also checked php.net but I wasn't
>>>>>>>
>>>>>> able
>>>
>>>> to
>>>>>>> find anything about this subject.
>>>>>>>
>>>>>>> It would be really helpful if someone knows that kind of procedure or
>>>>>>>
>>>>>> at
>>>
>>>> least has an implementation of it.
>>>>>>>
>>>>>>>  The only way I know to do this would be to add a method to your
>>>>>> class
>>>>>>
>>>>> to
>>>
>>>> give 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 altering
>>>>
>>> the
>>>
>>>> class 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@xxxxxxxxxxx>
>>>
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>>
>>
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux