David Sorry, I just RE read your reply. that's basically what you said, so in essence I agree...
Anthony On Nov 10, 2011 6:29 PM, "Anthony Ferrara" <ircmax...@gmail.com> wrote: > Well, the problem with adding methods later is that it will fatal any > class that implements the old one. A big no no. > > You could get around that by doing something like traversable. Provide an > empty and non usable core SplAutoloader interface which is typehintable. > Then add a child SplClassAutoloader interface which defines loadClass. > That way, in the future a new child could be added SplFunctionAutoloader > which defines loadFunction. > > By separating them, you maintain type hinting while enabling backwards > compatibility with existing code... > > Just a thought. > On Nov 10, 2011 6:13 PM, "David Muir" <davidkm...@gmail.com> wrote: > >> Surprised to say that I agree on just about everything you mentioned. I >> would however love to see a useful autoloader included in core. I have >> only one comment below. >> > 4. The RFC should avoid implementing any pattern or style that may >> > make future feature addition difficult or pose risks towards such. An >> > example would be implementing an interface for the autoloader which >> > defines something like load($class). The problem there is that if >> > function autoloading is added, the interface won't be able to support >> > it. So it's stuck in a hard place between changing an implemented >> > interface (which will bork code significantly on update) and adding a >> > new interface (which would be the lesser of evils, but would just add >> > to the deprecated cruft). >> >> IMO, the interface should just define loadClass($class). It means that >> spl_autoload_register has a fixed target for loading classes, and if we >> want to support autoloading functions or whatever else later on, a new >> interface can be added that would define the appropriate method eg. >> loadFunction($function). >> >> Cheers, >> David >> >>