Existe uma necessidade comum durante o processo de desenvolvimento, que é pré-visualizar dados que venham de um objeto ou array.
Podemos ter a necessidade de inspecionar um retorno de uma função, uma lista, um retorno de uma consulta ou até mesmo uma tabela do banco de dados, etc. Essa tarefa comum pode ser efetuada dando um print_r() na variável desejada e um exit() caso seja necessário parar a aplicação.
Outras vezes é interessante poder formatar esse retorno em dados tabulares de modo prático para a visualização.
E já que o CodeIgniter nos provê um classe para auxiliar na geração de tabelas HTML, decidi criar um pequeno helper capaz de mostrar esses dados de modo mais organizado.
Acrescentando uma função de pré-visualização simples, adicionando a tag <pre></pre> do HTML e passando como parâmetro 0 ou 1 para controlar se a aplicação deve parar depois de exibir as informações. Zero, ou omitindo o parâmetro não para, 1 para parar.
Criei também duas funções simples para gerar tabelas a partir de uma Array ou de um objeto com os respectivos nomes arr_tabela() e obj_tabela().
O código-fonte do helper ficou o seguinte.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function pre($var,$parar = null){
echo "<hr><pre>";
print_r($var);
echo "</pre><hr>";
if($parar!=null)
echo exit();
}
function obj_tabela($object,$parar = null){
$CI = & get_instance();
$CI->load->library('table');
$arr = array();
for ($i = 0; $i < count($object); $i++)
$arr[] = get_object_vars($object[$i]);
$CI->table->clear();
echo $CI->table->generate($arr);
if($parar!=null)
echo exit();
}
function arr_tabela($arr,$parar = null){
$CI = & get_instance();
$CI->load->library('table');
$CI->table->clear();
echo $CI->table->generate($arr);
if($parar!=null)
echo exit();
}
Um exemplo de uso é para recuperar os dados de uma tabela no do banco de dados, no controlador basta chamar da seguinte forma:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->helper('pre');
$data['categorias'] = $this->db->get('categorias')->result();
//$this->load->view('home',$data);
pre($data['categorias']);
//obj_tabela($data['categorias']);
}
}
Note a facilidade em exibir os dados vindos da tabela categorias. Na figura abaixo, temos a tabela do banco de dados.

Na sequência, veja o resultado gerado pela função obj_tabela();

E o mesmo objeto do banco de dados sendo exibido pelo uso da função pre();

O mais simplificado possível, temos a exibição de uma tabela ou view do nosso banco de dados com 3 linhas de código no controller.
Espero que os benefícios oferecidos pelo CodeIgniter 2.0 ajudem vocês nesse processo. Em caso de dúvida ou até mesmo troca de ideia, não deixe de postar seus comentários abaixo.
Até a próxima!












6 Comentários
Qual a sua opinião?