Re: Classes - Dumb question
| From: | Nathan Nobbe | Date: | Tue, 16 Oct 2007 00:10:33 +0000 |
| Subject: | Re: Classes - Dumb question | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-263221@lists.php.net to get a copy of this message | ||
On 10/15/07, Larry Garfield <larry@garfieldtech.com> wrote:
>
> On Monday 15 October 2007, Nathan Nobbe wrote:
> > On 10/15/07, tedd <tedd@sperling.com> wrote:
> > > I understand the class concept. But, I am not familiar with autoload.
> > >
> > > Stut also made mention of that, so I shall investigate post haste.
> >
> > __autoload is pretty tight; but if you dont want to have all your class
> > files in the same
> > directory, i suggest you implement something custom.
> > ive seen several implementations where class names basically have
> > filesystem paths
> > embedded in them; ugh.. i think thats what those buxa project guys are
> > doing, but im
> > not certain.
> > also, the __autoload() function has to be available for it to be called,
> > which means you
> > will have to include the file that defines it in every file that would
> use
> > it. since my php
> > code is heavily oop; i just use the php.ini auto_prepend_file directive.
> > oh; btw, Tedd, autoload is for classes only; if you like what you see
> maybe
> > that will be
> > the excuse youve been looking for to get into oop w/ php :)
> >
> > -nathan
>
> __autoload() is also not recommended. :-) You can only have one per
> script.
> Instead, use spl_autoload_register(). That way you can stack multiple
> autoload routines cleanly.
>
> (At least that's what the php-internals folks were saying the last time
> the
> topic came up.)
>
> http://us2.php.net/manual/en/function.spl-autoload-register.php
>
neat; i didnt know about that, but i had checked out spl_autoload() before.
ive defined a singleton that has a method for loading of classpaths.
when __autoload is called, it delegates to the singleton to see if the
classpath is valid.
if theres a match it loads it, otherwise it chokes.
i cant imagine having multiple __autoload methods, but perhaps if there was
a third party
lib that was also using autoload() theirs could be stacked on top of yours
and that way they
could both live together. i might give that a shot.
-nathan