Changes between Version 10 and Version 11 of WF/camadacontroller


Ignore:
Timestamp:
07/08/08 09:45:32 (16 years ago)
Author:
drovetto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/camadacontroller

    v10 v11  
    5151}}} 
    5252 
    53 Neste exemplo, o método run() recebe como parâmetro a ação a ser executada, e o método dispatch() está encarregado de executar o método de controle correspondente. Assim, se for passada a ação 'salvar' será executado o método salvar() desta mesma classe. Antes disto, porém foi realizada a conexão com o banco de dados, através do comando $this->model->DAO->connect(), mas isto é opcional. 
     53Neste exemplo, o método run() (declarado na classe Controller) recebe como parâmetro a ação a ser executada, e o método dispatch() está encarregado de executar o método de controle correspondente. Assim, se for passada a ação 'salvar' será executado o método salvar() desta mesma classe. 
    5454 
    5555Caso nenhuma ação seja recebida, será executado o método !__default(), também definido nesta classe. 
     
    125125     * @access protected 
    126126     */  
    127         function Controller(&$model , &$env) 
     127    function Controller(&$model , &$env) 
    128128    { 
    129129        $this->super(&$model , &$env); 
     
    134134        $this->assign('activity_title', 'Atos Administrativos'); 
    135135    }            
     136 
     137    /** 
     138     * Execucao da atividade. 
     139     * 
     140     * @param $action Servico (acao) solicitado 
     141     * @return void 
     142     * @access public 
     143     */ 
     144    function run($action) 
     145    { 
     146        $this->model->DAO->connect(); 
     147        $this->dispatch($action); 
     148        $this->model->DAO->disconnect(); 
     149    } 
     150     
    136151} 
    137152?> 
    138153}}} 
    139154 
    140 Na classe de Controle, a nível de processo, representado pelo exemplo anterior, iremos colocar tudo aquilo que for comum ao Controle das atividades. A classe começa definindo as constantes que representam os templates do processo. Depois implementa o método construtor 'Controller', que no exemplo, está definindo três variáveis da camada View, que ficarão disponíveis para as classes que a extenderem. 
     155Na classe de Controle, a nível de processo, exemplificada no código anterior, iremos colocar tudo aquilo que for comum às classes Controle das atividades. A classe começa definindo as constantes que representam os templates do processo. Depois implementa o método construtor 'Controller', que no exemplo, está definindo três variáveis da camada View, que ficarão disponíveis para as classes que a estenderem. Também é implementado o método run() que é responsável por chamar o método adequado de cada classe Controller das atividades. Podemos notar que, no exemplo, este método já está estabelecendo uma conexão com o banco de dados do processo (feita através do comando $this->model->DAO->connect()), mas isto é opcional. 
    141156 
    142 Mais uma vez observamos a existência de uma cláusula 'extends' que neste caso está extendendo a classe !BaseController. Essa classe está definida a nível de módulo e contém métodos de uso geral para atividades de Controle, que estão disponíveis para as classes filhas. 
     157Mais uma vez observamos a existência de uma cláusula 'extends' que neste caso está estendendo a classe !BaseController. Essa classe está definida a nível de módulo e contém métodos de uso geral para atividades de Controle, que estão disponíveis para as classes filhas. 
    143158 
    144159Segue uma explicação dos atributos da classe !BaseController: 
    145160 
    146  * view: objeto da classe Smarty que representa a camada View 
    147  * templateFile: armazena o nome do template em uso pela camada View 
    148  * model: objeto da classe Model da atividade 
     161 * view: objeto da classe Smarty que representa a camada View; 
     162 * templateFile: armazena o nome do template em uso pela camada View; 
     163 * model: objeto da classe Model da atividade. 
    149164 
    150165Métodos da classe !BaseController: 
     
    153168 * syncVars: transfere todos os atributos da camada Model para a Camada View; 
    154169 * loadViewVars: recupera os dados produzidos pela camada Model e os transfere para a camada View; 
    155  * assign: seta o valor de uma variável da camada View; 
     170 * assign: define o valor de uma variável da camada View; 
    156171 * cancelar: aborta a execução da atividade corrente; 
    157  * dispatch: executa a ação solicitada pelo usuário; 
     172 * dispatch: executa a ação solicitada pelo usuário. 
    158173 
    159174Resumindo, a implementação da camada Controller de uma atividade estará representada por três classes, com herança entre elas: