Como usar uma única função em qualquer controller ?

Tenho várias tabelas com campos no formato float e quero usar uma função para formatar moedas em várias views da aplicação.

Porém só consigo usar as funções que eu defino no model referente ao controller de determinada view.

Como posso usar uma função em qualquer controller/view da minha aplicação ?

Genésio,

boa tarde.

pra formatar moeda:


Yii::app()->numberFormatter->formatCurrency((double) $data->atributo, 'BRL')

agora pra chamar a mesma função em várias partes, você pode, por exemplo:

criar uma classe de helpers com funções estáticas.




<?php

Class MINHAS_Funcoes {

    public static function escreve_nome($nome) {

        return $nome;

    }



importá-la no main.php do diretório config:




'import'=>array(

    // supondo diretório helpers

    'application.helpers.*',

),



depois é só utilizar no seu código:




echo MINHAS_Funcoes::escreve_nome("adlersd");



Qualquer dúvida, posta aí.

abraço.

ao invés de vc tratar isso na view, pq vc não define isso no behaviors do model???

tem uma extensão que trata campos decimais http://www.yiiframework.com/extension/decimali18nbehavior

vc pode utilizá-la p/ servir como base p/ vc criar o tratamento que quiser de acordo com cada tipo de campo (data por exemplo)

Você pode também colocar a função no controller base que fica na pasta Components, e chamar ela assim: Controller::funcao()

abraço

Isso, pode chamar assim também… $this->funcao(), mas esse método deixa o código um tanto desorganizado, pois você vai usar o seu Controller base como um Utils, o ideal é criar Helpers mesmo, onde possas chamar em quaisquer partes do projeto, até porque, as funções do Controller base, não vão poder serem chamadas dentro dos modelos por exemplo.