-- Michael Depetrillo <[EMAIL PROTECTED]> wrote
(on Monday, 28 July 2008, 10:09 AM -0700):
> The problem has to do with Zend_Loader_PluginLoader trying to use a class
> prefix which matches the sub-controller directory I am using.
> 
> My directory structure looks like this.
> 
> app/www/controllers/Account.php
> app/www/controllers/Account/Ad.php
> app/www/views/scripts
> app/www/views/helpers
> 
> When the view file app/www/views/scripts/account/ad.php calls the helper
> $this->getNav(), the plugin loader throws this exception.
> 
> File BodyNav.php was loaded but class named Account_View_Helper_BodyNav was 
> not
> found within it.
> 
> The class name should be Zend_View_Helper_BodyNav.  It is using the prefix 
> from
> my sub-controller directory.   Not sure why, this broke when I upgraded to the
> latest trunk version.

Ah, okay -- the above gives me the information I need. I'll work on
getting a fix into trunk in the next 1-2 days.


> Here is part of my bootstrap.
> 
>        // initialize view
>         $view = new Zend_View($config->view->toArray());
>         $view->strictVars(); // enables tracking/detection of typos and
> misspelled variables in views
>         $view->addBasePath($appDir . DIRECTORY_SEPARATOR . 'views'); // shared
> views directory for all modules
>         $view->doctype(Zend_View_Helper_Doctype::XHTML1_TRANSITIONAL);
>        
>         $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper
> ('viewRenderer');
>         $viewRenderer->setViewSuffix('php')->setView($view);
>        
>         $frontController = Zend_Controller_Front::getInstance(); // manages 
> the
> overall workflow
>         $frontController->setDefaultModule($moduleName);
>         $frontController->returnResponse(true); // return the response (do not
> echo it to the browser)
>         $frontController->setControllerDirectory(array(
>             'www'      => $appDir . DIRECTORY_SEPARATOR  . 'www'   .
> DIRECTORY_SEPARATOR . 'controllers',
>             'cli'      => $appDir . DIRECTORY_SEPARATOR  . 'cli'   .
> DIRECTORY_SEPARATOR . 'controllers',
>             'admin'    => $appDir . DIRECTORY_SEPARATOR  . 'admin' .
> DIRECTORY_SEPARATOR . 'controllers',
>             'rest'     => $appDir . DIRECTORY_SEPARATOR . 'rest' .
> DIRECTORY_SEPARATOR . 'controllers'
>         ));
> 
>         $frontController->dispatch();
> 
> On Mon, Jul 28, 2008 at 6:56 AM, Matthew Weier O'Phinney <[EMAIL PROTECTED]>
> wrote:
> 
>     -- Michael Depetrillo <[EMAIL PROTECTED]> wrote
>     (on Monday, 28 July 2008, 12:10 AM -0700):
>     > Here is the problem.
>     >
>     > http://www.domain.com/account_ad
>     >
>     > Calls the method index in class Account_AdController location within
>     > controllers/Account/AdController.php
>     >
>     > Any helpers used in the view file for this method try to render
>     > Account_View_Helper_BodyNav instead of Zend_View_Helper_BodyNav or
>     whichever
>     > prefix I set using $view->setBasePath($path, $prefix).
> 
>     I need details on your bootstrap -- how are you adding controller
>     directories, how are you setting up your view, what is your directory
>     layout. I cannot speculate on the issue or attempt to reproduce it until
>     I know these details.
> 
> 
>     > On Wed, Jul 23, 2008 at 8:48 PM, Matthew Weier O'Phinney <
>     [EMAIL PROTECTED]>
>     > wrote:
>     >
>     >     -- Endijs Lisovskis <[EMAIL PROTECTED]> wrote
>     >     (on Wednesday, 23 July 2008, 03:25 PM -0700):
>     >     >
>     >     > If I just switch Zend Framework 1.5 library files to Zend 
> Framework
>     1.6
>     >     RC1
>     >     > library files I receive error:
>     >     >
>     >     > Fatal error: Uncaught exception
>     'Zend_Loader_PluginLoader_Exception' with
>     >     > message 'File LoggedInUser.php was loaded but class named
>     >     > Rn_View_Helper_LoggedInUser was not found within it.' in
>     >     > [full_path_removed]/library/Zend/Loader/PluginLoader.php:351 Stack
>     trace:
>     >     #0
>     >     > [full_path_removed]/library/Zend/View/Abstract.php(1114):
>     >     > Zend_Loader_PluginLoader->load('LoggedInUser') #1
>     >     > [full_path_removed]/library/Zend/View/Abstract.php(545):
>     >     > Zend_View_Abstract->_getPlugin('helper', 'loggedInUser') #2
>     >     > [full_path_removed]/library/Zend/View/Abstract.php(312):
>     >     > Zend_View_Abstract->getHelper('loggedInUser') #3 [internal
>     function]:
>     >     > Zend_View_Abstract->__call('loggedInUser', Array) #4
>     >     > [full_path_removed]/application/views/layouts/index.phtml(33):
>     >     > Zend_View->loggedInUser() #5 [full_path_removed]/library/Zend/V in
>     >     > [full_path_removed]/library/Zend/Loader/PluginLoader.php on line
>     351
>     >     >
>     >     > If I use ZF 1.5 everything is OK.
>     >     >
>     >     > Any ideas?
>     >
>     >     First off, in 1.6, we refactored the code in Zend_View to utilize 
> the
>     >     PluginLoader -- no reason to have code duplication. :)
>     >
>     >     Most likely, what's happening is that you've got an invalid helper
>     >     prefix registered; why it was not throwing an error before is the 
> new
>     >     question.
>     >
>     >     Several qustions:
>     >
>     >      * How are you setting up your views?
>     >      * How are you adding the Rn_View_Helper prefix to the view object?
>     >       * Is 'Rn' a module? or a private library namespace?
>     >      * Can you confirm that the file LoggedInuser.php exists on the
>     helper
>     >       path? If so, what class is in it?
>     >
>     >     Answer those questions, and I may have a better idea of how to fix
>     the
>     >     issue.
>     >
>     >     --
>     >     Matthew Weier O'Phinney
>     >     Software Architect       | [EMAIL PROTECTED]
>     >     Zend Framework           | http://framework.zend.com/
>     >
>     >
> 
>     --
>     Matthew Weier O'Phinney
>     Software Architect       | [EMAIL PROTECTED]
>     Zend Framework           | http://framework.zend.com/
> 
> 

-- 
Matthew Weier O'Phinney
Software Architect       | [EMAIL PROTECTED]
Zend Framework           | http://framework.zend.com/

Reply via email to