Nasıl tüm denetleyicileri bir fonksiyon evrensel yapmak Zend_Controller_Action uzatabilirsiniz

0 Cevap php

Ben mesajlaşma evrensel olması olabilir bu yüzden Zend_Controller_Action uzatmak istiyorum. Şu anda preDispatch in () tüm hatayı ayarı ve uyarı mesajları duyuyorum. Nasıl AddMessage (kod) ve preDispatch işlevleri tüm kontrolörler boyunca evrensel olarak yapabilirsiniz?

<?php

class PlaygroundController extends Zend_Controller_Action {

public function init()
{
    /* Initialize action controller here */
}

public function preDispatch()
{
    $flashMessenger = $this->_helper->FlashMessenger;

    $flashMessenger->setNamespace('Errors');
    $this->view->Errors = $flashMessenger->getMessages();

    $flashMessenger->setNamespace('Warnings');
    $this->view->Warnings = $flashMessenger->getMessages();

    $flashMessenger->setNamespace('Messages');
    $this->view->Messages = $flashMessenger->getMessages();

    $flashMessenger->setNamespace('Success');
    $this->view->Success = $flashMessenger->getMessages();

}

protected function AddMessage($message,$type='Errors') {
    $flashMessenger = $this->_helper->FlashMessenger;
    $flashMessenger->setNamespace($type);
    $flashMessenger->addMessage($message);
}

public function flashAction()
{
    $this->AddMessage('This is an error message');
    $this->AddMessage('This is another error message');
    $this->AddMessage('This is a warning message','Warnings');
    $this->AddMessage('This is message','Messages');
    $this->AddMessage('This is another success message','Success');
}

}

0 Cevap