Skip to content

Instantly share code, notes, and snippets.

@fernando-basso
Last active December 22, 2015 13:39
Show Gist options
  • Save fernando-basso/6480669 to your computer and use it in GitHub Desktop.
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?
<?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