Issues

ZF-12417: Missing migration notes - Zend_View_Helper_Navigation proxy to helper methods cannot be found

Description

After upgrading from ZF 1.11.11 to 1.12.0 I get the following error:


Zend_Controller_Exception: Bad method call:
Unknown method Zend_Navigation::menu
#0 [internal function]: Zend_Navigation_Container->__call('menu', Array)
#1 

The error disappears when: - I downgrade to 1.11.10 (could not find 1.11.11 but I use that version in production and it works fine) - I comment out {{$this->navigation()->menu()}} and {{...->breadcrumbs()}} in my layout.phtml

Apparently the proxies to the navigation helper methods cannot be found, falling back to Zend_Navigation_Container

Comments

Hi Timmo, thanks for your report.

Please put the following line in your layout script and post the result here.


var_dump($this->getHelperPaths());

Thanks!

Can you also provide the error message with the full stack trace?

helper paths:

array 'Zend_View_Helper_' => array 0 => string 'Zend/View/Helper/' (length=17) 1 => string '/home/user/domains/myapp/application/views/helpers/' (length=62) 'Zend_View_Helper_Navigation_' => array 0 => string 'Zend/View/Helper/Navigation/' (length=28) 'Application_View_Helper_' => array 0 => string '/home/user/domains/myapp/application/views/helpers/' (length=62) 'My_View_Helper_' => array 0 => string '/home/user/domains/myapp/application/../../../library/php/My/views/helpers/' (length=87) 'ZendX_JQuery_View_Helper_' => array 0 => string '/usr/local/zend/share/ZendFramework/library/ZendX/JQuery/View/Helper/' (length=69) 'Zym_View_Helper_' => array 0 => string '/home/user/domains/myapp/application/../../../library/php/Zym/View/Helper/' (length=85)

error message and call stack:

( ! ) Fatal error: Uncaught exception 'Zend_Navigation_Exception' with message 'Bad method call: Unknown method Zend_Navigation::menu' in /usr/local/zend/share/ZendFramework/library/Zend/Controller/Plugin/Broker.php on line 336 ( ! ) Zend_Navigation_Exception: Bad method call: Unknown method Zend_Navigation::menu in /usr/local/zend/share/ZendFramework/library/Zend/Navigation/Container.php on line 366 Call Stack

Time Memory Function Location

1 0.0024 325048 {main}( ) ../index.php:0 2 0.2795 1514772 Zend_Application->run( ) ../index.php:45 3 0.2795 1514772 Zend_Application_Bootstrap_Bootstrap->run( ) ../Application.php:366 4 0.2798 1514828 Zend_Controller_Front->dispatch( ) ../Bootstrap.php:97 5 1.0316 3064992 Zend_Controller_Plugin_Broker->postDispatch( ) ../Front.php:965 6 1.1115 3087956 Zend_Controller_Plugin_ErrorHandler->postDispatch( ) ../Broker.php:333 7 1.1115 3087956 Zend_Controller_Plugin_ErrorHandler->_handleError( ) ../ErrorHandler.php:223 ( ! ) Zend_Controller_Exception: Bad method call: Unknown method Zend_Navigation::menu

0 [internal function]: Zend_Navigation_Container->__call('menu', Array)

1 [internal function]: Zend_Navigation->menu()

2 /usr/local/zend/share/ZendFramework/library/Zend/View/Helper/Navigation/HelperAbstract.php(561): call_user_func_array(Array, Array)

3 /usr/local/zend/share/ZendFramework/library/Zend/View/Helper/Navigation.php(132): Zend_View_Helper_Navigation_HelperAbstract->__call('menu', Array) #4 /home/user/domains/myapp/application/layouts/scripts/layout.phtml(39): Zend_View_Helper_Navigation->__call('menu', Array)

5 /home/user/domains/myapp/application/layouts/scripts/layout.phtml(39): Zend_View_Helper_Navigation->menu()

6 /usr/local/zend/share/ZendFramework/library/Zend/View.php(108): include('/home/user...')

7 /usr/local/zend/share/ZendFramework/library/Zend/View/Abstract.php(888): Zend_View->_run('/home/user...')

8 /usr/local/zend/share/ZendFramework/library/Zend/Layout.php(796): Zend_View_Abstract->render('layout.phtml')

9 /usr/local/zend/share/ZendFramework/library/Zend/Layout/Controller/Plugin/Layout.php(143): Zend_Layout->render()

10 /usr/local/zend/share/ZendFramework/library/Zend/Controller/Plugin/Broker.php(333): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http))

11 /usr/local/zend/share/ZendFramework/library/Zend/Controller/Front.php(965): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http))

12 /usr/local/zend/share/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()

13 /usr/local/zend/share/ZendFramework/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()

14 /home/user/domains/myapp/public/index.php(45): Zend_Application->run()

15 {main} in /usr/local/zend/share/ZendFramework/library/Zend/Controller/Plugin/Broker.php on line 336

Call Stack

Time Memory Function Location

1 0.0024 325048 {main}( ) ../index.php:0 2 0.2795 1514772 Zend_Application->run( ) ../index.php:45 3 0.2795 1514772 Zend_Application_Bootstrap_Bootstrap->run( ) ../Application.php:366 4 0.2798 1514828 Zend_Controller_Front->dispatch( ) ../Bootstrap.php:97

Okay, thanks!

Can you check this in your layout script:




Please use the code tags in your comments. Thanks!

````

With ZF 1.12 that is:

```

With ZF 1.11.10 I do get the helper

All my applications works fine with 1.12!

Please check outside your application:


// Auto loader
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

// View
$view = new Zend_View();

// Container
$container = new Zend_Navigation(
    array(
        array(
            'label' => 'Home',
            'uri'   => 'home',
        ),
    )
);

echo $view->navigation($container)->menu();

I am not sure if this is relevant but I use Zend Server CE (on Ubuntu 12.04) with a different repository (to have SSL support with Ubuntu 12.04)

I get:

Home

Okay, fine!

Now you can check this in your application. (Put it at the end of your layout script!)


$this->setHelperPath(null);
var_dump($this->getHelper('navigation')->findHelper('menu', false));

I get the same error message as before. But isn't that the (fatal) error of my earlier menu() call which prevents your lines (at the end) from being executed?

Yes, your are right. Please comment out your navigation helper calls. Sorry!

object(Zend_View_Helper_Navigation_Menu)[265]
  protected '_ulClass' => string 'navigation' (length=10)
  protected '_ulId' => null
  protected '_onlyActiveBranch' => boolean false
  protected '_renderParents' => boolean true
  protected '_partial' => null
  protected '_expandSiblingNodesOfActiveBranch' => boolean false
  protected '_container' => 
    object(Zend_Navigation)[401]
      protected '_pages' => 
        array
          '000000003ee369c400000000956c7dbd' => 
            object(Zend_Navigation_Page_Uri)[101]
              protected '_uri' => string '/' (length=1)
              protected '_label' => string 'home' (length=4)
              protected '_fragment' => null
              protected '_id' => string 'h' (length=1)
              protected '_class' => null
              protected '_title' => null
              protected '_target' => null
              protected '_accesskey' => null
              protected '_rel' => 
                array
                  empty
              protected '_rev' => 
                array
                  empty
              protected '_order' => null
              protected '_resource' => null
              protected '_privilege' => null
              protected '_active' => boolean false
              protected '_visible' => boolean true
              protected '_parent' => 
                &object(Zend_Navigation)[401]
              protected '_properties' => 
                array
                  empty
              protected '_customHtmlAttribs' => 
                array
                  empty
              protected '_pages' => 
                array
                  '00000000742b2dfc000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[102]
                      ...
                  '00000000742b2df8000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[98]
                      ...
                  '00000000742b2d97000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[16]
                      ...
                  '00000000742b2d9e000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[25]
                      ...
                  '00000000742b2d9d000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[29]
                      ...
                  '00000000742b2d9b000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[30]
                      ...
                  '00000000742b2d9a000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[145]
                      ...
                  '00000000742b2d99000000009a91696f' => 
                    object(Zend_Navigation_Page_Uri)[155]
                      ...
              protected '_index' => 
                array
                  '00000000742b2dfc000000009a91696f' => int 0
                  '00000000742b2df8000000009a91696f' => int 1
                  '00000000742b2d97000000009a91696f' => int 2
                  '00000000742b2d9e000000009a91696f' => int 3
                  '00000000742b2d9d000000009a91696f' => int 4
                  '00000000742b2d9b000000009a91696f' => int 5
                  '00000000742b2d9a000000009a91696f' => int 6
                  '00000000742b2d99000000009a91696f' => int 7
              protected '_dirtyIndex' => boolean false
      protected '_index' => 
        array
          '000000003ee369c400000000956c7dbd' => int 0
      protected '_dirtyIndex' => boolean false
  protected '_minDepth' => null
  protected '_maxDepth' => null
  protected '_indent' => string '' (length=0)
  protected '_prefixForId' => null
  protected '_skipPrefixForId' => boolean false
  protected '_translator' => 
    object(Zend_Translate_Adapter_Array)[77]
      private '_data' => 
        array
          empty
      private '_automatic' (Zend_Translate_Adapter) => boolean false
      private '_routed' (Zend_Translate_Adapter) => 
        array
          empty
      protected '_options' => 
        array
          'clear' => boolean false
          'content' => string '/home/user/domains/myapp/application/languages' (length=57)
          'disableNotices' => boolean true
          'ignore' => string '.' (length=1)
          'locale' => string 'nl' (length=2)
          'log' => null
          'logMessage' => string 'Untranslated message within '%locale%': %message%' (length=49)
          'logPriority' => int 5
          'logUntranslated' => boolean false
          'reload' => boolean false
          'route' => null
          'scan' => string 'directory' (length=9)
          'tag' => string 'Zend_Translate' (length=14)
      protected '_translate' => 
        array
          'nl' => 
            array
              'Invalid type given, value should be float, string, or integer' => string 'Ongeldig type opgegeven, waarde moet een float, string, of integer zijn' (length=71)
              ''%value%' contains characters which are non alphabetic and no digits' => string ''%value%' bevat tekens welke alfabetisch, noch numeriek zijn' (length=60)
              ''%value%' is an empty string' => string ''%value%' is een lege string' (length=28)
              'Invalid type given, value should be a string' => string 'Ongeldig type opgegeven, waarde dient een string te zijn' (length=56)
              ''%value%' contains non alphabetic characters' => string ''%value%' bevat tekens welke niet alfabetisch zijn' (length=50)
              ''%value%' failed checksum validation' => string ''%value%' slaagde niet in de checksum validatie' (length=47)
              ''%value%' contains invalid characters' => string ''%value%' bevat ongeldige tekens' (length=32)
              ''%value%' should have a length of %length% characters' => string ''%value%' moet een lengte hebben van %length% tekens' (length=52)
              'Invalid type given, value should be string' => string 'Ongeldig type opgegeven, waarde moet een string zijn' (length=52)
              ''%value%' is not between '%min%' and '%max%', inclusively' => string ''%value%' is niet tussen of gelijk aan '%min%' en '%max%'' (length=57)
              ''%value%' is not strictly between '%min%' and '%max%'' => string ''%value%' is niet tussen '%min%' en '%max%'' (length=43)
              ''%value%' is not valid' => string ''%value%' is ongeldig' (length=21)
              'Failure within the callback, exception returned' => string 'Fout opgetreden in de callback, exceptie teruggegeven' (length=53)
              ''%value%' must contain between 13 and 19 digits' => string ''%value%' moet 13 tot 19 cijfers bevatten' (length=41)
              'Luhn algorithm (mod-10 checksum) failed on '%value%'' => string 'Het Luhn algoritme (mod-10 checksum) is niet geslaagd op '%value%'' (length=66)
              ''%value%' must contain only digits' => string ''%value%' kan alleen cijfers bevatten' (length=37)
              ''%value%' contains an invalid amount of digits' => string ''%value%' bevat een ongeldige hoeveelheid cijfers' (length=49)
              ''%value%' is not from an allowed institute' => string ''%value%' is niet afkomstig van een toegestaan instituut' (length=56)
              'Validation of '%value%' has been failed by the service' => string 'Validatie door de service van '%value%' is mislukt' (length=50)
              'The service returned a failure while validating '%value%'' => string 'De service heeft een foutmelding teruggegeven bij het valideren van '%value%'' (length=77)
              'Invalid type given, value should be string, integer, array or Zend_Date' => string 'Ongeldig type opgegeven, waarde moet een string, integer, array of Zend_Date zijn' (length=81)
              ''%value%' does not appear to be a valid date' => string ''%value%' lijkt geen geldige datum te zijn' (length=42)
              ''%value%' does not fit the date format '%format%'' => string ''%value%' past niet in het datumformaat '%format%'' (length=50)
              'No record matching %value% was found' => string 'Er kon geen record gevonden wat overeenkomt met %value%' (length=55)
              'A record matching %value% was found' => string 'Een record wat overeenkomt met %value% is gevonden' (length=50)
              'Invalid type given, value should be string, integer or float' => string 'Ongeldig type opgegeven, waarde dient een string, integer of float te zijn' (length=74)
              ''%value%' contains characters which are not digits; but only digits are allowed' => string ''%value%' bevat niet enkel numerieke karakters' (length=46)
              ''%value%' is not a valid email address in the basic format local-part@hostname' => string ''%value%' is geen geldig e-mail adres in het basis formaat lokaal-gedeelte@hostname' (length=83)
              ''%hostname%' is not a valid hostname for email address '%value%'' => string ''%hostname%' is geen geldige hostnaam voor e-mail adres '%value%'' (length=65)
              ''%hostname%' does not appear to have a valid MX record for the email address '%value%'' => string ''%hostname%' lijkt geen geldig MX record te hebben voor e-mail adres '%value%'' (length=78)
              ''%hostname%' is not in a routable network segment. The email address '%value%' should not be resolved from public network.' => string ''%hostname%' bevindt zich niet in een routeerbaar netwerk segment. Het e-mail adres '%value%' zou niet naar mogen worden verwezen vanaf een publiek netwerk.' (length=156)
              ''%localPart%' can not be matched against dot-atom format' => string ''%localPart%' kan niet worden gematched met het dot-atom formaat' (length=64)
              ''%localPart%' can not be matched against quoted-string format' => string ''%localPart%' kan niet worden gematched met het quoted-string formaat' (length=69)
              ''%localPart%' is not a valid local part for email address '%value%'' => string ''%localPart%' is geen geldig lokaal gedeelte voor e-mail adres '%value%'' (length=72)
              ''%value%' exceeds the allowed length' => string ''%value%' overschrijdt de toegestane lengte' (length=43)
              'Too many files, maximum '%max%' are allowed but '%count%' are given' => string 'Te veel bestanden, maximaal '%max%' zijn toegestaan, maar '%count%' werd opgegeven' (length=82)
              'Too few files, minimum '%min%' are expected but '%count%' are given' => string 'Te weinig bestanden, er worden er minimaal '%min%' verwacht, maar er waren er  '%count%' opgegeven' (length=98)
              'File '%value%' does not match the given crc32 hashes' => string 'File '%value%' matcht niet met de opgegeven crc32 hashes' (length=56)
              'A crc32 hash could not be evaluated for the given file' => string 'Fout tijdens het genereren van een crc32 hash van het opgegeven bestand' (length=71)
              'File '%value%' could not be found' => string 'Het bestand '%value%' kon niet worden gevonden' (length=46)
              'File '%value%' has a false extension' => string 'Het bestand '%value%' heeft een ongeldige extensie' (length=50)
              'File '%value%' has a false mimetype of '%type%'' => string 'Het bestand '%value%' heeft een ongeldig mimetype: '%type%'' (length=59)
              'The mimetype of file '%value%' could not be detected' => string 'Het mimetype van bestand '%value%' kon niet worden gedetecteerd' (length=63)
              'File '%value%' can not be read' => string 'Het bestand '%value%' kon niet worden gelezen' (length=45)
              'File '%value%' does not exist' => string 'Bestand '%value%' bestaat niet' (length=30)
              'All files in sum should have a maximum size of '%max%' but '%size%' were detected' => string 'Alle bestanden tesamen hebben een maximale grootte van '%max%' maar '%size%' was gedetecteerd' (length=93)
              'All files in sum should have a minimum size of '%min%' but '%size%' were detected' => string 'Alle bestanden tesamen hebben een minimum grotte van '%min%' maar '%size%' was gedetecteerd' (length=91)
              'One or more files can not be read' => string 'Eén of meer bestanden konden niet worden gelezen' (length=49)
              'File '%value%' does not match the given hashes' => string 'Het bestand '%value%' matcht niet met de opgegeven hashes' (length=57)
              'A hash could not be evaluated for the given file' => string 'Een hash kon niet worden gegenereerd voor het opgegeven bestand' (length=63)
              'Maximum allowed width for image '%value%' should be '%maxwidth%' but '%width%' detected' => string 'Maximum breedte voor afbeelding '%value%' is '%maxwidth%' maar '%width%' werd gedetecteerd' (length=90)
              'Minimum expected width for image '%value%' should be '%minwidth%' but '%width%' detected' => string 'Minimum breedte voor afbeelding '%value%' is '%minwidth%' maar '%width%' werd gedetecteerd' (length=90)
              'Maximum allowed height for image '%value%' should be '%maxheight%' but '%height%' detected' => string 'Maximum hoogte voor afbeelding '%value%' is '%maxheight%' maar '%height%' werd gedetecteerd' (length=91)
              'Minimum expected height for image '%value%' should be '%minheight%' but '%height%' detected' => string 'Minimum hoogte voor afbeelding '%value%' is '%minheight%' maar '%height%' werd gedetecteerd' (length=91)
              'The size of image '%value%' could not be detected' => string 'De grootte van afbeelding '%value%' kon niet worden gedetecteerd' (length=64)
              'File '%value%' is not compressed, '%type%' detected' => string 'Het bestand '%value%' is niet gecomprimeerd, '%type%' gedetecteerd' (length=66)
              'File '%value%' is no image, '%type%' detected' => string 'Het bestand '%value%' is geen afbeelding, '%type%' gedetecteerd' (length=63)
              'File '%value%' does not match the given md5 hashes' => string 'Het bestand '%value%' matcht niet met de opgegeven md5-hashes' (length=61)
              'A md5 hash could not be evaluated for the given file' => string 'Een md5-hash kon niet gegenereerd worden voor het opgegeven bestand' (length=67)
              'File '%value%' exists' => string 'Het bestand '%value%' bestaat' (length=29)
              'File '%value%' does not match the given sha1 hashes' => string 'Het bestand '%value%' matcht niet met de opgegeven sha1-hashes' (length=62)
              'A sha1 hash could not be evaluated for the given file' => string 'Een sha1-hash kon niet worden gegenereerd voor het opgegeven bestand' (length=68)
              'Maximum allowed size for file '%value%' is '%max%' but '%size%' detected' => string 'Maximum grootte voor bestand '%value%' is '%max%' maar '%size%' werd gedetecteerd' (length=81)
              'Minimum expected size for file '%value%' is '%min%' but '%size%' detected' => string 'Minimum grootte voor bestand '%value%' is '%min%' maar '%size%' werd gedetecteerd' (length=81)
              'File '%value%' exceeds the defined ini size' => string 'Het bestand '%value%' overschrijdt de ini grootte' (length=49)
              'File '%value%' exceeds the defined form size' => string 'Het bestand '%value%' overschrijdt de formulier grootte' (length=55)
              'File '%value%' was only partially uploaded' => string 'Het bestand '%value%' was slechts gedeeltelijk geüpload' (length=56)
              'File '%value%' was not uploaded' => string 'Het bestand '%value%' was niet geüpload' (length=40)
              'No temporary directory was found for file '%value%'' => string 'Geen tijdelijke map was gevonden voor bestand '%value%'' (length=55)
              'File '%value%' can't be written' => string 'Het bestand '%value%' kan niet worden geschreven' (length=48)
              'A PHP extension returned an error while uploading the file '%value%'' => string 'Een PHP-extensie gaf een foutmelding terug tijdens het uploaden van het bestand '%value%'' (length=89)
              'File '%value%' was illegally uploaded. This could be a possible attack' => string 'Het bestand '%value%' was illegaal geüpload. Dit kan een aanval zijn' (length=69)
              'File '%value%' was not found' => string 'Het bestand '%value%' kon niet worden gevonden' (length=46)
              'Unknown error while uploading file '%value%'' => string 'Er is een onbekende fout opgetreden tijdens het uploaden van '%value%'' (length=70)
              'Too much words, maximum '%max%' are allowed but '%count%' were counted' => string 'Te veel woorden, er is een maximum van '%max%', maar er waren '%count%' geteld' (length=78)
              'Too less words, minimum '%min%' are expected but '%count%' were counted' => string 'Te weinig worden, er is een minimum van '%min%' maar er waren '%count%' geteld' (length=78)
              ''%value%' does not appear to be a float' => string ''%value%' lijkt geen float te zijn' (length=34)
              ''%value%' is not greater than '%min%'' => string ''%value%' is niet groter dan '%min%'' (length=36)
              ''%value%' has not only hexadecimal digit characters' => string ''%value%' bestaat niet enkel uit acht hexadecimale cijfers' (length=58)
              ''%value%' appears to be an IP address, but IP addresses are not allowed' => string ''%value%' lijkt een IP adres te zijn, maar IP adressen zijn niet toegestaan' (length=75)
              ''%value%' appears to be a DNS hostname but cannot match TLD against known list' => string ''%value%' lijkt een DNS hostnaam te zijn, maar het TLD bestaat niet in de lijst met bekende TLD's' (length=97)
              ''%value%' appears to be a DNS hostname but contains a dash in an invalid position' => string ''%value%' lijkt een DNS hostnaam te zijn, maar bevat een streep op een ongeldige plek' (length=85)
              ''%value%' appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'' => string ''%value%' lijkt een DNS hostnaam te zijn, maar past niet in het hostnaam-schema voor TLD '%tld%'' (length=96)
              ''%value%' appears to be a DNS hostname but cannot extract TLD part' => string ''%value%' lijkt een DNS hostnaam te zijn, maar kan niet het TLD gedeelte bepalen' (length=80)
              ''%value%' does not match the expected structure for a DNS hostname' => string ''%value%' matcht niet met de verwachte structuur voor een DNS hostnaam' (length=70)
              ''%value%' does not appear to be a valid local network name' => string ''%value%' lijkt geen geldige lokale netwerknaam te zijn' (length=55)
              ''%value%' appears to be a local network name but local network names are not allowed' => string ''%value%' lijkt een lokale netwerknaam te zijn, welke niet zijn toegestaan' (length=74)
              ''%value%' appears to be a DNS hostname but the given punycode notation cannot be decoded' => string ''%value%' lijkt een geldige DNS hostnaam te zijn, maar de opgegeven punnycode notatie kan niet worden gedecodeerd' (length=113)
              'Unknown country within the IBAN '%value%'' => string 'Onbekend land in de IBAN '%value%'' (length=34)
              ''%value%' has a false IBAN format' => string ''%value%' heeft een ongeldig IBAN formaat' (length=41)
              ''%value%' has failed the IBAN check' => string ''%value%' is geen geldige IBAN' (length=30)
              'The two given tokens do not match' => string 'De twee tokens komen niet overeen' (length=33)
              'No token was provided to match against' => string 'Er is geen token opgegeven om mee te matchen' (length=44)
              ''%value%' was not found in the haystack' => string ''%value%' kon niet worden gevonden in lijst met beschikbare waardes' (length=67)
              'Invalid type given, value should be string or integer' => string 'Ongeldig type opgegeven, waarde moet een string of integer zijn' (length=63)
              ''%value%' does not appear to be an integer' => string ''%value%' lijkt geen integer te zijn' (length=36)
              ''%value%' does not appear to be a valid IP address' => string ''%value%' lijkt geen geldig IP adres te zijn' (length=44)
              ''%value%' is not a valid ISBN number' => string ''%value%' is geen geldig ISBN nummer' (length=36)
              ''%value%' is not less than '%max%'' => string ''%value%' is niet minder dan '%max%'' (length=36)
              'Invalid type given, value should be float, string, array, boolean or integer' => string 'Ongeldig type opgegeven, waarde dient een float, string, array, boolean of integer te zijn' (length=90)
              'Value is required and can't be empty' => string 'vereist' (length=7)
              'Invalid type given. The value should be a string or a integer' => string 'Ongeldig type opgegeven, waarde moet een string of integer zijn' (length=63)
              ''%value%' does not appear to be a postal code' => string ''%value%' lijkt geen geldige postcode te zijn' (length=45)
              ''%value%' does not match against pattern '%pattern%'' => string ''%value%' matcht niet met het patroon '%pattern%'' (length=49)
              'There was an internal error while using the pattern '%pattern%'' => string 'Er is een interne fout opgetreden tijdens het gebruik van het patroon '%pattern%'' (length=81)
              ''%value%' is not a valid sitemap changefreq' => string ''%value%' is geen geldige sitemap changefreq' (length=44)
              'Invalid type given, the value should be a string' => string 'Ongeldig type opgegeven, waarde dient een string te zijn' (length=56)
              ''%value%' is not a valid sitemap lastmod' => string ''%value%' is geen geldige sitemap lastmod' (length=41)
              ''%value%' is not a valid sitemap location' => string ''%value%' is geen geldige sitemap locatie' (length=41)
              ''%value%' is not a valid sitemap priority' => string ''%value%' is geen geldige sitemap prioriteit' (length=44)
              'Invalid type given, the value should be a integer, a float or a numeric string' => string 'Ongeldig type opgegeven, waarde dient een integer, float of een numerieke string te zijn' (length=88)
              ''%value%' is less than %min% characters long' => string ''%value%' is minder dan %min% tekens lang' (length=41)
              ''%value%' is more than %max% characters long' => string ''%value%' is meer dan %max% tekens lang' (length=39)
  protected '_acl' => null
  protected '_renderInvisible' => boolean false
  protected '_role' => null
  protected '_useTranslator' => boolean true
  protected '_useAcl' => boolean true
  protected '_closingBracket' => null
  public 'view' => 
    object(Zend_View)[46]
      private '_useViewStream' => boolean false
      private '_useStreamWrapper' => boolean false
      private '_path' (Zend_View_Abstract) => 
        array
          'script' => 
            array
              0 => string '/home/user/domains/myapp/application/layouts/scripts/' (length=64)
              1 => string '/home/user/domains/myapp/application/views/scripts/' (length=62)
              2 => string '/home/user/domains/myapp/application/../../../library/php/My/views/scripts/' (length=87)
          'helper' => 
            array
              empty
          'filter' => 
            array
              empty
      private '_file' (Zend_View_Abstract) => string '/home/user/domains/myapp/application/layouts/scripts/_footer.phtml' (length=77)
      private '_helper' (Zend_View_Abstract) => 
        array
          'Doctype' => 
            object(Zend_View_Helper_Doctype)[43]
              protected '_defaultDoctype' => string 'HTML4_LOOSE' (length=11)
              protected '_registry' => 
                object(ArrayObject)[45]
                  public 'doctypes' => 
                    array
                      ...
                  public 'doctype' => string 'HTML5' (length=5)
              protected '_regKey' => string 'Zend_View_Helper_Doctype' (length=24)
              public 'view' => 
                &object(Zend_View)[46]
          'HeadMeta' => 
            object(Zend_View_Helper_HeadMeta)[44]
              protected '_typeKeys' => 
                array
                  0 => string 'name' (length=4)
                  1 => string 'http-equiv' (length=10)
                  2 => string 'charset' (length=7)
                  3 => string 'property' (length=8)
              protected '_requiredKeys' => 
                array
                  0 => string 'content' (length=7)
              protected '_modifierKeys' => 
                array
                  0 => string 'lang' (length=4)
                  1 => string 'scheme' (length=6)
              protected '_regKey' => string 'Zend_View_Helper_HeadMeta' (length=25)
              protected '_container' => 
                object(Zend_View_Helper_Placeholder_Container)[41]
                  
                    object(stdClass)[42]
                      ...
                  
                    object(stdClass)[299]
                      ...
                  
                    object(stdClass)[300]
                      ...
              protected '_registry' => 
                object(Zend_View_Helper_Placeholder_Registry)[51]
                  protected '_containerClass' => string 'Zend_View_Helper_Placeholder_Container' (length=38)
                  protected '_items' => 
                    array
                      ...
              protected '_autoEscape' => boolean true
              public 'view' => 
                &object(Zend_View)[46]
          'Cache' => 
            object(My_View_Helper_Cache)[107]
              public 'view' => 
                &object(Zend_View)[46]
          'Navigation' => 
            object(Zend_View_Helper_Navigation)[402]
              protected '_defaultProxy' => string 'menu' (length=4)
              protected '_helpers' => 
                array
                  'menu' => 
                    &object(Zend_View_Helper_Navigation_Menu)[265]
              protected '_injectContainer' => boolean true
              protected '_injectAcl' => boolean true
              protected '_injectTranslator' => boolean true
              protected '_container' => 
                object(Zend_Navigation)[401]
                  protected '_pages' => 
                    array
                      ...
                  protected '_index' => 
                    array
                      ...
                  protected '_dirtyIndex' => boolean false
              protected '_minDepth' => null
              protected '_maxDepth' => null
              protected '_indent' => string '' (length=0)
              protected '_prefixForId' => null
              protected '_skipPrefixForId' => boolean false
              protected '_translator' => 
                object(Zend_Translate_Adapter_Array)[77]
                  private '_data' => 
                    array
                      ...
                  private '_automatic' (Zend_Translate_Adapter) => boolean false
                  private '_routed' (Zend_Translate_Adapter) => 
                    array
                      ...
                  protected '_options' => 
                    array
                      ...
                  protected '_translate' => 
                    array
                      ...
              protected '_acl' => null
              protected '_renderInvisible' => boolean false
              protected '_role' => null
              protected '_useTranslator' => boolean true
              protected '_useAcl' => boolean true
              protected '_closingBracket' => null
              public 'view' => 
                &object(Zend_View)[46]
          'Uri' => 
            object(My_View_Helper_Uri)[305]
              public 'view' => 
                &object(Zend_View)[46]
          'Language' => 
            object(My_View_Helper_Language)[307]
              public 'view' => 
                &object(Zend_View)[46]
          'Translate' => 
            object(Zend_View_Helper_Translate)[308]
              protected '_translator' => 
                object(Zend_Translate_Adapter_Array)[77]
                  private '_data' => 
                    array
                      ...
                  private '_automatic' (Zend_Translate_Adapter) => boolean false
                  private '_routed' (Zend_Translate_Adapter) => 
                    array
                      ...
                  protected '_options' => 
                    array
                      ...
                  protected '_translate' => 
                    array
                      ...
              public 'view' => 
                &object(Zend_View)[46]
          'HeadTitle' => 
            object(Zend_View_Helper_HeadTitle)[301]
              protected '_regKey' => string 'Zend_View_Helper_HeadTitle' (length=26)
              protected '_translate' => boolean false
              protected '_translator' => null
              protected '_defaultAttachOrder' => null
              protected '_container' => 
                object(Zend_View_Helper_Placeholder_Container)[302]
                  string 'Ontslagvergoeding en ww-uitkering: rechten en fiscale consequenties' (length=67)
              protected '_registry' => 
                object(Zend_View_Helper_Placeholder_Registry)[51]
                  protected '_containerClass' => string 'Zend_View_Helper_Placeholder_Container' (length=38)
                  protected '_items' => 
                    array
                      ...
              protected '_autoEscape' => boolean true
              public 'view' => 
                &object(Zend_View)[46]
          'HeadLink' => 
            object(Zend_View_Helper_HeadLink)[287]
              protected '_itemKeys' => 
                array
                  0 => string 'charset' (length=7)
                  1 => string 'href' (length=4)
                  2 => string 'hreflang' (length=8)
                  3 => string 'id' (length=2)
                  4 => string 'media' (length=5)
                  5 => string 'rel' (length=3)
                  6 => string 'rev' (length=3)
                  7 => string 'type' (length=4)
                  8 => string 'title' (length=5)
                  9 => string 'extras' (length=6)
                  10 => string 'sizes' (length=5)
              protected '_regKey' => string 'Zend_View_Helper_HeadLink' (length=25)
              protected '_container' => 
                object(Zend_View_Helper_Placeholder_Container)[297]
                  
                    object(stdClass)[295]
                      ...
              protected '_registry' => 
                object(Zend_View_Helper_Placeholder_Registry)[51]
                  protected '_containerClass' => string 'Zend_View_Helper_Placeholder_Container' (length=38)
                  protected '_items' => 
                    array
                      ...
              protected '_autoEscape' => boolean true
              public 'view' => 
                &object(Zend_View)[46]
          'Canonical' => 
            object(My_View_Helper_Canonical)[296]
              public 'view' => 
                &object(Zend_View)[46]
          'GoogleAnalytics' => 
            object(My_View_Helper_GoogleAnalytics)[291]
              public 'view' => 
                &object(Zend_View)[46]
          'ProfileLink' => 
            object(My_View_Helper_ProfileLink)[294]
              public 'view' => 
                &object(Zend_View)[46]
          'ServerUrl' => 
            object(Zym_View_Helper_ServerUrl)[292]
              protected '_scheme' => string 'http' (length=4)
              protected '_host' => string 'myapp' (length=11)
          'LanguageLink' => 
            object(My_View_Helper_LanguageLink)[293]
              public 'view' => 
                &object(Zend_View)[46]
          'Layout' => 
            object(Zend_View_Helper_Layout)[290]
              protected '_layout' => 
                object(Zend_Layout)[80]
                  protected '_container' => 
                    object(Zend_View_Helper_Placeholder_Container)[53]
                      ...
                  protected '_contentKey' => string 'content' (length=7)
                  protected '_enabled' => boolean true
                  protected '_helperClass' => string 'Zend_Layout_Controller_Action_Helper_Layout' (length=43)
                  protected '_inflector' => 
                    object(Zend_Filter_Inflector)[286]
                      ...
                  protected '_inflectorEnabled' => boolean true
                  protected '_inflectorTarget' => &string ':script.:suffix' (length=15)
                  protected '_layout' => string 'layout' (length=6)
                  protected '_viewScriptPath' => string '/home/user/domains/myapp/application/layouts/scripts/' (length=64)
                  protected '_viewBasePath' => null
                  protected '_viewBasePrefix' => string 'Layout_View' (length=11)
                  protected '_mvcEnabled' => boolean true
                  protected '_mvcSuccessfulActionOnly' => boolean true
                  protected '_pluginClass' => string 'Zend_Layout_Controller_Plugin_Layout' (length=36)
                  protected '_view' => 
                    &object(Zend_View)[46]
                  protected '_viewSuffix' => &string 'phtml' (length=5)
              public 'view' => 
                &object(Zend_View)[46]
          'ShareButton' => 
            object(Application_View_Helper_ShareButton)[289]
              public 'view' => 
                &object(Zend_View)[46]
          'Sharetext' => 
            object(My_View_Helper_Sharetext)[288]
              public 'view' => 
                &object(Zend_View)[46]
          'SharetextThx' => 
            object(My_View_Helper_SharetextThx)[235]
              public 'view' => 
                &object(Zend_View)[46]
          'ShareScript' => 
            object(Application_View_Helper_ShareScript)[233]
              public 'view' => 
                &object(Zend_View)[46]
          'Sidebar' => 
            object(My_View_Helper_Sidebar)[234]
              public 'view' => 
                &object(Zend_View)[46]
          'FetchNews' => 
            object(Application_View_Helper_FetchNews)[236]
              public 'view' => 
                &object(Zend_View)[46]
          'PartialLoop' => 
            object(Zend_View_Helper_PartialLoop)[278]
              protected 'partialCounter' => int 3
              protected '_objectKey' => null
              public 'view' => 
                &object(Zend_View)[46]
          'Adsense' => 
            object(Application_View_Helper_Adsense)[281]
              public 'view' => 
                &object(Zend_View)[46]
          'Menu' => 
            &object(Zend_View_Helper_Navigation_Menu)[265]
      private '_helperLoaded' (Zend_View_Abstract) => 
        array
          empty
      private '_helperLoadedDir' (Zend_View_Abstract) => 
        array
          empty
      private '_filter' (Zend_View_Abstract) => 
        array
          empty
      private '_filterClass' (Zend_View_Abstract) => 
        array
          empty
      private '_filterLoaded' (Zend_View_Abstract) => 
        array
          empty
      private '_filterLoadedDir' (Zend_View_Abstract) => 
        array
          empty
      private '_escape' (Zend_View_Abstract) => string 'htmlspecialchars' (length=16)
      private '_encoding' (Zend_View_Abstract) => string 'UTF-8' (length=5)
      private '_lfiProtectionOn' (Zend_View_Abstract) => boolean true
      private '_loaders' (Zend_View_Abstract) => 
        array
          'filter' => 
            object(Zend_Loader_PluginLoader)[48]
              protected '_loadedPluginPaths' => 
                array
                  empty
              protected '_loadedPlugins' => 
                array
                  empty
              protected '_prefixToPaths' => 
                array
                  'Zend_View_Filter_' => 
                    array
                      ...
              protected '_useStaticRegistry' => null
          'helper' => 
            object(Zend_Loader_PluginLoader)[242]
              protected '_loadedPluginPaths' => 
                array
                  empty
              protected '_loadedPlugins' => 
                array
                  'Menu' => string 'Zend_View_Helper_Navigation_Menu' (length=32)
              protected '_prefixToPaths' => 
                array
                  'Zend_View_Helper_' => 
                    array
                      ...
                  'Zend_View_Helper_Navigation_' => 
                    array
                      ...
              protected '_useStaticRegistry' => null
      private '_loaderTypes' (Zend_View_Abstract) => 
        array
          0 => string 'filter' (length=6)
          1 => string 'helper' (length=6)
      private '_strictVars' (Zend_View_Abstract) => boolean false
      public 'bottomNav' => 
        object(Zend_Navigation)[400]
          protected '_pages' => 
            array
              '000000003ee368e400000000956c7dbd' => 
                object(Zend_Navigation_Page_Uri)[325]
                  protected '_uri' => string '/' (length=1)
                  protected '_label' => string 'home' (length=4)
                  protected '_fragment' => null
                  protected '_id' => string 'h' (length=1)
                  protected '_class' => null
                  protected '_title' => null
                  protected '_target' => null
                  protected '_accesskey' => null
                  protected '_rel' => 
                    array
                      ...
                  protected '_rev' => 
                    array
                      ...
                  protected '_order' => null
                  protected '_resource' => null
                  protected '_privilege' => null
                  protected '_active' => boolean false
                  protected '_visible' => boolean true
                  protected '_parent' => 
                    &object(Zend_Navigation)[400]
                  protected '_properties' => 
                    array
                      ...
                  protected '_customHtmlAttribs' => 
                    array
                      ...
                  protected '_pages' => 
                    array
                      ...
                  protected '_index' => 
                    array
                      ...
                  protected '_dirtyIndex' => boolean false
          protected '_index' => 
            array
              '000000003ee368e400000000956c7dbd' => null
          protected '_dirtyIndex' => boolean true
      public 'pageIdOtherLanguage' => string 'eow' (length=3)
      public 'languageUri' => string '/en/severance-pay/ontslagvergoeding-en-ww' (length=41)
      public 'com' => 
        object(stdClass)[283]
          public 'price' => string '€ 1.395' (length=10)
          public 'priceAdmin' => string '€ 390' (length=8)
          public 'priceAdminBtw' => string '€ 464' (length=8)
          public 'priceCalcClient' => string '€ 200' (length=8)
          public 'priceBvSetup' => string '€ 325' (length=8)
          public 'priceBvCapital' => string '€ 295' (length=8)
          public 'priceBvLiquidate' => string '€ 995' (length=8)
          public 'kvk' => string '€ 120' (length=8)
          public 'kvkPension' => string '€ 50' (length=7)
          public 'minSeverance' => string '€ 60.000' (length=11)
      public 'keywords' => string 'ontslagvergoeding, ww-uitkering' (length=31)
      public 'description' => string 'Ook als u instemt met ontslag wordt uw ontslagvergoeding niet gekort op uw WW-uitkering. Wel wordt de ingang van uw ww beïnvloed door de fictieve opzegtermijn.' (length=160)
      public 'pageTitle' => string 'Ontslagvergoeding en ww-uitkering: rechten en fiscale consequenties' (length=67)
      public 'relatedItems' => 
        array
          0 => string 'o' (length=1)
          1 => string 'or' (length=2)
          2 => string 'so' (length=2)
      public 'adsense' => boolean true
      public 'calc' => 
        object(stdClass)[306]
          public 'maxWageDay' => string '€ 193,09' (length=11)
          public 'wageDay' => string '€ 252,87' (length=11)
          public 'wage' => string '€ 5.500' (length=10)
          public 'wageMonthWwStart' => string '€ 3.150' (length=10)
          public 'wageMonthWwNext' => string '€ 2.940' (length=10)
          public 'workDays' => string '21,75' (length=5)
          public 'percStartWw' => string '75' (length=2)
          public 'percNextWw' => string '70' (length=2)
          public 'advantage' => int 10
          public 'yearFictPast' => int 1998
          public 'birthYear' => int 1977
          public 'lastYear' => int 2011
          public 'workPast' => int 14
          public 'fictWorkPast' => int 3
          public 'past' => int 17

Thanks for your support!

I looked into the "Zym" library and I think there is the problem: {{Zym_View_Helper_Menu}}! Rename these helper and it should run.

The behavior is described here: ZF-10458

Yes, after renaming Zym/View/Helper/Menu.php and also .../Breadcrumbs.php my problem was solved. Am I correct in understanding that a fix to some added functionality previous to 1.12 was lost in 1.12?

Perhaps off-topic but the reason I use Zym is mainly to directly access the view in a view helper. Is this perhaps supported in ZF without Zym now? If so I would remove Zym altogether.

How can I edit my comment above? I see some personal data that I would like to remove.

{quote}Am I correct in understanding that a fix to some added functionality previous to 1.12 was lost in 1.11?{quote} Yes, in old versions your own navigation helpers could not have the name "menu" or "breadcrumbs".

{quote}Perhaps off-topic but the reason I use Zym is mainly to directly access the view in a view helper.{quote} Your view helper must extends {{Zend_View_Helper_Abstract}} and then you can use {{$this->view}} inside the helper. The abstract class was added in version 1.6.0.

{quote}How can I edit my comment above? I see some personal data that I would like to remove.{quote} Roll with the mouse cursor over our comment and you will see on the right side a pencil.

I think we must add some migration notes to the docs. I will change this issue type to "Docs: Improvement".

Fixed on trunk (25226) and release-1.12 (25227)