Jump to content


Photo

[Ajuda] Melhorando A Leitura Do Controller


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 rafaeldrm

rafaeldrm

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Masculino
  • Localidade:Brasília/DF

Posted 16/07/2010, 11:01

Tenho um código com funções básicas de crud. porém com várias linhas repetidas e gostaria muito de tornar isso mais legível, retirando a repetição.

abaixo o código do meu controller.

<?php
class Sistema extends Controller {

//desnecessário carregar tudo aqui, mais viável fazer o carregamento pelo autolaod dentro de config


/*	function __construct() {
		parent::Controller();

		$this->load->helper('url');
		$this->load->helper('form');
		$this->load->database();
		$this->load->model('andamento_model');
		$this->load->model('registro_model');
		$this->load->model('cadastro_model');
		$this->load->model('arquivos_model');
		$this->load->model('geral_model');
		$this->load->model('status_model');
		$this->load->model('tipo_model');
		$this->load->model('modalidade_model');
		$this->load->model('auxiliar_model');
		$this->load->model('lotes_model');
	}
	
	*/
	
	function index(){ //função padrão
		$this->load->view('andamento_view');
	}

	//INSERIR//-----------------------------------------------------------------
	function add(){

		$data['registro'] = $this->resgistro_model->getregistro();
		$data['cadastro'] = $this->cadastro_model->getcadastro();
		$data['arquivos'] = $this->arquivos_model->getarquivos();
		$data['geral'] = $this->geral_model->getgeral();
		$data['status'] = $this->status_model->getstatus();
		$data['tipo'] = $this->tipo_model->gettipo();
		$data['modalidade'] = $this->modalidade_model->getmodalidade();
		$data['auxiliar'] = $this->auxiliar_model->getauxiliar();
		
		$this->load->view('view_sistemaCreate',$data);
	}
	//EXIBIR//------------------------------------------------------------------
	function detail(){
		$data = array();
		if($query = $this->sistema_model->detail()){
			$data['records'] = $query;
		}
		$data['registro'] = $this->resgistro_model->getregistro();
		$data['cadastro'] = $this->cadastro_model->getcadastro();
		$data['arquivos'] = $this->arquivos_model->getarquivos();
		$data['geral'] = $this->geral_model->getgeral();
		$data['status'] = $this->status_model->getstatus();
		$data['tipo'] = $this->tipo_model->gettipo();
		$data['modalidade'] = $this->modalidade_model->getmodalidade();
		$data['auxiliar'] = $this->auxiliar_model->getauxiliar();		
	
		$this->load->view('view_sistemaDetail', $data);
	}
	//ALTERAR//-----------------------------------------------------------------
	function edit(){
		$data = array();
		if($query = $this->sistema_model->detail()){
			$data['records'] = $query;
		}
		$data['registro'] = $this->resgistro_model->getregistro();
		$data['cadastro'] = $this->cadastro_model->getcadastro();
		$data['arquivos'] = $this->arquivos_model->getarquivos();
		$data['geral'] = $this->geral_model->getgeral();
		$data['status'] = $this->status_model->getstatus();
		$data['tipo'] = $this->tipo_model->gettipo();
		$data['modalidade'] = $this->modalidade_model->getmodalidade();
		$data['auxiliar'] = $this->auxiliar_model->getauxiliar();	
	
		$this->load->view('view_sistemaUpdate', $data);
	}
	
}

tem muita repetição
destas linhas

$data['registro'] = $this->resgistro_model->getregistro();
		$data['cadastro'] = $this->cadastro_model->getcadastro();
		$data['arquivos'] = $this->arquivos_model->getarquivos();
		$data['geral'] = $this->geral_model->getgeral();
		$data['status'] = $this->status_model->getstatus();
		$data['tipo'] = $this->tipo_model->gettipo();
		$data['modalidade'] = $this->modalidade_model->getmodalidade();
		$data['auxiliar'] = $this->auxiliar_model->getauxiliar();

e não diferencia nada a não ser quando no final é carregado uma view diferente.

o sistema está funcionando muito bem e perfeitamente, andei tirando algumas outras funções porque se não ficaria muito grande meu post.

mas é isso, se der para fazer uma referência ou um comando que inteprete todas essas linhas de repetição em cada função, ficarei muito grato.

espero ter conseguido transmitir o meu problema.

Edição feita por: rafaeldrm, 16/07/2010, 11:02.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq