Matthew and all, Adding namespaces to the new Autoloader works great as long as they are in the include path. For example, a namespace 'App_' which refers to classes in the 'App' directory that sits next to the Zend (framework) directory.
Question: Is there anyway to autoload the classes inside the APPLICATION_PATH . '/models' directory without putting this directory on the include path? For, example when you instantiate Model_Users, the autoloader knows to look for APPLICATION_PATH .'/models/Users.php' I started by trying to use Application_Module_Resource_Autoloader and the theory sounded right to me, however it did not work. Thanks. J On Sun, May 3, 2009 at 2:25 PM, Matthew Weier O'Phinney <matt...@zend.com>wrote: > -- J DeBord <jasdeb...@gmail.com> wrote > (on Saturday, 02 May 2009, 07:43 PM +0200): > > My code: > > > > require_once 'Zend/Loader/Autoloader.php'; > > $autoloader = Zend_Loader_Autoloader::getInstance(); > > $autoloader->registerNamespace(array('Amazon_', 'Nba_')); > > > > $filesDomain = new Nba_SimpleDb_Domain_Files; > > > > There is a parse error in the class Nba_SimpleDb_Domain_Files. > > With the code above, when executed, the screen is blank. > > This slipped under my radar: suppression is on by default. > > Call this when you're doing your autoloader setup: > > $autoloader->suppressNotFoundWarnings(false); > > and you should start seeing parse errors. > > > If I add: > > > > require_once('Nba/SimpleDb/Domain/Files.php'); > > > > I get the parse error. > > > > My error reporting fwiw: > > > > error_reporting(E_ALL|E_STRICT); > > ini_set('display_errors', 'on'); > > ini_set('display_startup_errors', 'on'); > > > > Any hints? > > > > > > On Sat, May 2, 2009 at 6:20 PM, J DeBord <jasdeb...@gmail.com> wrote: > > > > Alright, I read the article. Great as usual. Thanks Matthew. > > > > The following paragraph caught my attention early on: > > > > "So, we then tried using the suppression operator ('@'). This gets > rid of > > the error notices (though they still show up in logs) -- but has a > really > > nasty side effect: if there are parse or compilation errors when > attempting > > to load the class, nothing is reported, and you end up with a blank > white > > screen with no information." > > > > Since changing to the Zend_Loader_Autooader, I've been noticing this > exact > > thing is happening. I'll do some investigating, but as of right now, > if I > > accidentally use = in an associative array as opposed to => for > example, I > > get the blank white screen instead of a parse error. > > > > Article was great. I'm going to keep plugging away. Thanks! > > > > > > > > On Sat, May 2, 2009 at 6:02 PM, J DeBord <jasdeb...@gmail.com> > wrote: > > > > Thanks guys! I will be reading Matthew's Dev Zone article this > evening. > > > > Regarding registerNamespace(). How exactly does this work? What > is the > > advantage? For example I'm using an Amazon SimpleDb library. I > keep it > > in the same library directory next to my Zend (framework) > directory. > > The library directory is on the include path. All the class names > in > > the Amazon directory begin with Amazon_ and use the same naming > > conventions as the Zend Framework. Should I registerNamespace > > ('Amazon_') and forego using the setFallbackAutoloader(true) ? > > > > Thanks again! > > > > J > > > > > > > > On Sat, May 2, 2009 at 4:30 PM, Matthew Weier O'Phinney < > > matt...@zend.com> wrote: > > > > -- David Mintz <vtbludg...@gmail.com> wrote > > (on Saturday, 02 May 2009, 08:54 AM -0400): > > > On Sat, May 2, 2009 at 8:50 AM, Matthew Weier O'Phinney < > > matt...@zend.com> > > > wrote: > > > -- J DeBord <jasdeb...@gmail.com> wrote > > > (on Saturday, 02 May 2009, 11:32 AM +0200): > > > > To make Zend_Loader_Autoloader match the > functionality of > > this: > > > > > > > > require_once "Zend/Loader.php"; > > > > Zend_Loader::registerAutoload(); > > > > > > > > Would you do this? : > > > > > > > > require_once 'Zend/Loader/Autoloader.php'; > > > > $autoloader = Zend_Loader_Autoloader::getInstance(); > > > > $autoloader->setFallbackAutoloader(true); > > > > > > Yes, though the last line can be omitted if you're not > using > > any > > > libraries outside of Zend_ or ZendX_ trees. Or, if you > know > > the exact > > > namespaces of any other libraries, register them: > > > > > > $autoloader->registerNamespace(array('Foo_', > 'Bar_')); > > > > > > If we could stick a sticky on this little thread...! I can > > promise this will > > > get asked a lot as people's apps blow up following upgrade > to 1.8 > > > > I'll add it to the FAQ and release notes. > > > > The article I wrote for devzone yesterday appears to be > helping the > > transition for many, however. > > > > -- > > Matthew Weier O'Phinney > > Project Lead | matt...@zend.com > > Zend Framework | http://framework.zend.com/ > > > > > > > > > > > > > > -- > Matthew Weier O'Phinney > Project Lead | matt...@zend.com > Zend Framework | http://framework.zend.com/ >