quinta-feira, 31 de janeiro de 2013

Zend Action Helper

Olá pessoal, hoje vou mostrar pra vocês como criar um Zend Action Helper.

Você deve estar querendo saber para que serve um Action Helper ou quando se deve usar um Action Helper, eu vou explicar.

Imagina que você tem uma função que transforma letras minusculas em letras maisculas e que você usa essa função em todas as suas actions, não é muito melhor fazer essa função em apenas um lugar do que ficar fazendo em todas as actions? É ai que entra o Action Helper.

Para criar um Action Helper é necessario fazer algumas alterações no boostrap.php, nele tem uma function chamada _initAutoload(), você deve altera-la para ficar da seguinte maneira.


protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Application',
            'basePath'  => APPLICATION_PATH,
        ));
        
        return $autoloader;
    }


Agora vamos criar a função para inicializar o helper.


protected function _initHelpers() {
        Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/controllers/helpers');  
    }


Vamos criar o helper, para isso vá a sua pasta application/controller, crie uma nova pasta chamada helpers e dentro dessa pasta crie um arquivo chamado String.php.

Dentro do arquivo vamos colocar o seguinte código


class Zend_Controller_Action_Helper_String extends Zend_Controller_Action_Helper_Abstract {

    public function maiusculo($string) {
        return strtoupper($string);
    }
}


Feito isso, agora vamos chamar o helper no controller, colocando o seguinte código.


$texto = "ola mundo";
echo $this->_helper->getHelper('String')->maiusculo($texto);


Pronto, agora você ja esta utilizando um Action Helper, o exemplo que dei foi muito simples, mas da para perceber o quanto essa ferramenta pode ser útil.