Good Created a class in / module / Application / src / View / Helper / Messages

Code:

<?php namespace Application\View\Helper; use Zend\View\Helper\AbstractHelper; // Этот класс помощника отображения разных сообщений пользователю (статичных) class Messages extends AbstractHelper { public function __construct() { } protected function renderErrorMessages($item) { echo "!!!"; } } 

Added it to the module settings:

Code:

  .... 'controllers' => [ 'factories' => [ Controller\IndexController::class => InvokableFactory::class, Controller\UserController::class => InvokableFactory::class, ], ], 'view_helpers' => [ 'factories' => [ View\Helper\Messages::class => InvokableFactory::class, ], 'aliases' => [ 'messages' => View\Helper\Messages::class ] ], 'view_manager' => [ 'display_not_found_reason' => true, 'display_exceptions' => true, 

....

On the login.phtml page I try to insert:

Code:

 ... <?php echo $this->Messages()->renderErrorMessages(); ?> ... 

I get the error message:

[Wed Mar 13 12: 18: 30.725622 2019] [php7: error] [pid 9697] [client 127.0.0.1Cl2914] PHP Fatal error: Uncaught Zend \ ServiceManager \ Exception \ ServiceNotFoundException: A plugin by the name "Messages" was found in the plugin manager /zendframework/zend-view/src/Renderer/PhpRenderer.php(376): Zend \ ServiceManager \ AbstractPluginManager-> get ('Messages', NULL) \ n # 1 / var / www / webuseorg4 / vendor / zendframework / zend- view / src / Renderer / PhpRenderer.php (394): Zend \ View \ Renderer \ PhpRenderer-> plugin ('Messages') \ n # 2 /var/www/webuseorg4/module/Application/view/layout/login.phtml (32): Zend \ View \ Renderer \ PhpRenderer -> __ call ('Messages', Array) \ n # 3 /var/www/webuseorg4/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506) : include ('/ var / www / webuse ...') \ n # 4 /var/www/webuseorg4/vendor/zendframework/zend-view/src/View.php(207): Zend \ View \ Renderer \ PhpRenderer-> render (NULL) \ n # 5 / var / www / webuseorg4 / vendor / zendframework / zend-mvc / src / View / Http / DefaultRenderingStrateg in / var / www / webuseorg4 / vendor / zendframework / zend -servicemanager / src / AbstractPluginManager.php on line 142, referer: http://127.0.0.128/user/login 1

Tell me where I am stupid?

    1 answer 1

    Blind (s). Several errors were at once: Correct: in / module / Application / src / View / Helper / Messages

     public function renderErrorMessages() { echo "!!!"; } 
    • instead of public, it is protected and renderErrorMessages without a parameter ..