You are here: Re: [PHP] PHP 5 Question about OO « PHP « IT news, forums, messages
Re: [PHP] PHP 5 Question about OO

Posted by Jason Barnett on 06/02/05 16:24

Jochem Maas wrote:
> Richard Lynch wrote:
>
>> On Wed, June 1, 2005 3:53 am, Marcus Bointon said:
>>
>>> On 1 Jun 2005, at 11:38, Jochem Maas wrote:
>>>
>>>
>>>> all true, now imagine that you install a couple of 3rdparty php5
>>>> 'packages'
>>>> and they all define __autoload() - ain't gonna work! which is why
>>>> there has been
>>>> discussion on internals regarding the possibility of use a handler-
>>>> function stack
>>>> for autoloading (in the same way that you can register a stack of
>>>> input/output
>>>> filter-function)... something to keep an eye on in case things
>>>> change :-)
>>>
>>>
>>> I've run into this one. One way that would work for me (and initially
>>> it's how I assumed it worked) is for __autoload to be a standard
>>> class method like __construct, so that a class would attempt to run
>>> its own autoloader before breaking out to the global function namespace.
>>
>>
>>
>> Maybe I'm being dumb, but how can an object's __autoload function get
>> called when the object class definition hasn't been loaded, and that's
>> why
>> you're calling __autoload in the first place...
>>
>> That seems like classic chicken/egg situation to me...
>>
>
> that was my first reaction, but then I thought what if the __autoload()
> function was called when 'any' class needed to be included while running
> code inside said class... that _might_ actually be useful
>
> at any rate the __autoload() issue is still very much undecided :-)
>

I opened up a feature request for this very topic a while back. The
__autoload function should just register user-defined functions and
store those func names in a stack so that (in turn) each function can
require the appropriate file. If the first registered function fails to
load the class then __autoload tries the next registered fucntion and so
on until all of the registered functions have been tried. At this point
if __autoload fails then we E_ERROR out explaining that __autoload could
not load the class definition.

As far as I can tell this is the cleanest solution that has been
provided, but there is some disagreement over some of the details on
this approach.

<just_kidding>Life would be so much easier if everyone just did things
like the PEAR coders do</just_kidding>


--
Teach a man to fish...

NEW? | http://www.catb.org/~esr/faqs/smart-questions.html
STFA | http://marc.theaimsgroup.com/?l=php-general&w=2
STFM | http://php.net/manual/en/index.php
STFW | http://www.google.com/search?q=php
LAZY |
http://mycroft.mozdev.org/download.html?name=PHP&submitform=Find+search+plugins

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация