Changes between Version 10 and Version 11 of WF/camadacontroller
- Timestamp:
- 07/08/08 09:45:32 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WF/camadacontroller
v10 v11 51 51 }}} 52 52 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.53 Neste 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. 54 54 55 55 Caso nenhuma ação seja recebida, será executado o método !__default(), também definido nesta classe. … … 125 125 * @access protected 126 126 */ 127 127 function Controller(&$model , &$env) 128 128 { 129 129 $this->super(&$model , &$env); … … 134 134 $this->assign('activity_title', 'Atos Administrativos'); 135 135 } 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 136 151 } 137 152 ?> 138 153 }}} 139 154 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.155 Na 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. 141 156 142 Mais uma vez observamos a existência de uma cláusula 'extends' que neste caso está e xtendendo 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.157 Mais 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. 143 158 144 159 Segue uma explicação dos atributos da classe !BaseController: 145 160 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. 149 164 150 165 Métodos da classe !BaseController: … … 153 168 * syncVars: transfere todos os atributos da camada Model para a Camada View; 154 169 * loadViewVars: recupera os dados produzidos pela camada Model e os transfere para a camada View; 155 * assign: setao valor de uma variável da camada View;170 * assign: define o valor de uma variável da camada View; 156 171 * 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. 158 173 159 174 Resumindo, a implementação da camada Controller de uma atividade estará representada por três classes, com herança entre elas: