Last active
December 22, 2015 13:39
-
-
Save fernando-basso/6480669 to your computer and use it in GitHub Desktop.
How to get rid of all those hardcoded url parameters and long IFs in the controller?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
header( 'Content-Type: text/html; charset=utf-8' ); | |
require_once 'inc/init.php'; | |
//////////////////////////////////////////////////////////////////// | |
/// VARIÁVEIS PADRÃO PARA EXECUÇÃO DAS AÇÕES /////////////////////// | |
$menu = Util::getVar( 'm', Util::REQUEST ); | |
$acao = Util::getVar( 'acao', Util::REQUEST ); | |
$id = Util::getVar( 'id', Util::REQUEST ); | |
$url = "?m={$menu}"; | |
$redir = FALSE; | |
switch ( $menu ): | |
case 'departamentos': | |
$DaoDep = new DepartamentoDAO( Conexao::getConexao() ); | |
if ( $acao == 'listar' || $acao == '' ) { | |
$departamentos = $DaoDep->getDepartamentos(); | |
$view = 'view/departamentos/lista.html.php'; | |
} | |
if ( $acao == 'incluir' ) { | |
// Como o formulário é o mesmo, precisamos passar um objeto | |
$titulo = 'Inclusão de um novo departamento no sistema.'; | |
$dept = new Departamento(); | |
$view = 'view/departamentos/form.html.php'; | |
} | |
if ( $acao == 'gravar_incluir' ) { | |
Util::pr( $_POST ); | |
$dept = new Departamento(); | |
$dept->setNome( Util::getVar( 'nome', Util::POST ) ); | |
$dept->setDescricao( Util::getVar( 'descricao' ), Util::POST ); | |
$DaoDep->salvar( $dept ); | |
$redir = TRUE; | |
} | |
if ( $acao == 'editar' && $id !== NULL ) { | |
$dept = $DaoDep->getDepartamento( $id ); | |
$titulo = "Edição do departamento {$dept->getNome()}."; | |
$view = 'view/departamentos/form.html.php'; | |
} | |
if ( $acao == 'gravar_editar' && $id !== NULL ) { | |
$dept = new Departamento(); | |
$dept->setNome( Util::getVar( 'nome', Util::POST ) ); | |
$dept->setDescricao( Util::getVar( 'descricao' ), Util::POST ); | |
$res = $DaoDep->salvar( $dept ); | |
if ( ! $res ) { | |
$_SESSION[ Util::ERROR_MSGS ] = 'Erro ao atualizar departamento.'; | |
$url = "?m=departamentos&acao=editar&id={$id}"; | |
} | |
else { | |
} | |
$redir = TRUE; | |
} | |
if( $acao == 'confirm-excluir' && $id !== NULL ) { | |
$dept = $DaoDep->getDepartamento( $id ); | |
$view = 'view/departamentos/excluir.html.php'; | |
} | |
if ( $acao == 'excluir' && $id !== NULL ) { | |
$DaoDep->excluir( $id ); | |
$redir = TRUE; | |
} | |
break; | |
case 'funcionarios': | |
// ... | |
break; | |
default: | |
// ... | |
break; | |
endswitch; | |
include 'view/template.html.php'; | |
if ( $redir ) { | |
header( "Location: {$url}" ); | |
exit(); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment