-- J DeBord <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <
> [email protected]> wrote:
>
> -- David Mintz <[email protected]> wrote
> (on Saturday, 02 May 2009, 08:54 AM -0400):
> > On Sat, May 2, 2009 at 8:50 AM, Matthew Weier O'Phinney <
> [email protected]>
> > wrote:
> > -- J DeBord <[email protected]> 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 | [email protected]
> Zend Framework | http://framework.zend.com/
>
>
>
>
>
>
--
Matthew Weier O'Phinney
Project Lead | [email protected]
Zend Framework | http://framework.zend.com/