Conforme prometido nossa Parte 2 do tutorial de CodeIgniter finalmente saiu!
Hoje veremos mais a fundo o nosso poderoso Framework PHP, mas também tendo a percepção do quanto ele facilita tarefas repetitivas que praticamente todo projeto necessita.
Para quem não viu a Parte 1 deste tutorial, basta baixar o conteúdo por este link.
Já temos nosso WAMP instalado, então rodamos ele para iniciar nosso servidor local. Na pasta www do WAMP deve estar a pasta blog, que é o nosso projeto atual. Acessamos nosso projeto pelo navegador através do link localhost/blog. E deverá nos mostrar uma página como essa abaixo.

Na nossa página inicial que construímos na Parte 1 do tutorial, temos criado a view artigos onde iremos listar os artigos do nosso blog. Vamos colocar uma tabela no html da nossa view que simula os artigos que serão listados futuramente do nosso banco de dados.
Na pasta application->views acessamos nossa view artigos.php e colocamos uma tabela abaixo do título.
<html> <body> <h2>Artigos do nosso blog</h2> <table> <tr> <th>Titulo</th> <th>Conteúdo</th> </td> <tr> <td>Artigo PHP</td> <td>Nosso primeiro artigo php</td> </tr> <tr> <td>Artigo Codeigniter</td> <td>Nosso poderoso Framework WEB</td> </tr> </table> </body> </html>
O resultado deve ficar desta maneira:

Criando o banco de dados
Para a criação do nosso banco de dados, utilizaremos o phpmyadmin. O PhpMyadmin é um aplicativo web desenvolvido em PHP para administração do MySQL pela Internet. Ele já vem incluído no nosso servidor local WAMP. Para acessa-lo basta digitar no navegador o caminho localhost/phpmyadmin. Se você fez a instalação padrão do wamp apertando “next” em todas as telas, seu login será por padrão “root” e sua senha vazia.

Ao entrar no phpmyadmin, acessamos a aba SQL e digitamos o comando SQL para a criação do nosso banco de dados chamado de blog_db.
CREATE DATABASE blog_db
Após digitar nosso comando SQL, clicamos em Executar para rodar o comando. Se tudo ocorrer bem, o nosso banco de dados já será listado na árvore de base de dados do lado esquerdo da tela.

Criando nossa primeira tabela
Após concluída a criação do nosso banco, clicamos em cima dele para acessa-lo. Ao acessa-lo teremos a opção de SQL novamente nas abas superiores. Clicamos novamente nesta aba, e iremos agora criar a primeira tabela do nosso banco de dados, que será a tabela onde guardará nossos artigos. Chamaremo de tb_artigos. O comando para criar nossa tabela é o seguinte:
CREATE TABLE tb_artigos( id INTEGER PRIMARY KEY AUTO_INCREMENT , titulo VARCHAR( 255 ) NOT NULL , conteudo TEXT NOT NULL)
Ao digitar o comando clicamos novamente no botão Executar. Se tudo estiver correto acessamos a aba Estrutura, e nossa tabela estará criada.

Inserindo dados em nossa tabela
O nosso último passo agora, é inserir dados nessa nossa tabela. Clicamos em tb_artigos, vamos novamente em SQL e digitamos os seguinte comandos para adicionar os dados:
INSERT INTO `tb_artigos`(`titulo`, `conteudo`) VALUES ("Nosso primeiro artigo PHP", "Este é o conteúdo do artigo PHP"); INSERT INTO `tb_artigos`(`titulo`, `conteudo`) VALUES ("Artigo CodeIgniter", "Mostrando o poder do framework PHP");
Se tudo ocorrer bem poderemos ver os nossos dados na aba superior Procurar no PhpMyadmin.

Conhecendo o Model
Na parte um vimos a função do Controller e da View. Porém agora precisamos fazer a manipulação de dados e para isso precisamos do Model. Ele é responsável pela leitura e escrita de dados, e também de suas validações. O codeigniter já vem com uma pasta específica para isso, então criamos o arquivo Artigos_model.php no caminho application->model. O nome é bastante importante para o codeigniter identificar que realmente é um model.

Após criar o nosso model, vamos adicionar o seguinte código nele:
<?php class Artigos_model extends CI_Model{ public function listar(){ $this->load->database(); //carrego a library de banco de dados return $this->db->get('tb_artigos')->result_array(); //retorna os nossos dados } }
Vamos analisar nosso código acima. Primeiro criamos a class Artigos_model que estende de CI_Model, ou seja, da classe de models do codeigniter. Depois criamos nossa função chamada listar(), pois iremos listar os artigos do banco de dados através desse model. Dentro do listar() carregamos a librarie database() que é a responsável pela conexão com o banco de dados. E por último retornamos um array de dados da tabela tb_artigos.
Configurando a conexão com o banco de dados
Porém em nem um momento fizemos uma conexão com nosso banco de dados, precisamos fazer isso agora. Acessamos a pasta config da nossa aplicação , e em seguida abrimos o arquivo database.php. No final do arquivo, configuramos o código com nosso hostname,username,password e database.
$db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'blog_db', 'dbdriver' => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 'save_queries' => TRUE );
Note que deixamos nosso password vazio, já que no nosso phpmyadmin ele é acessado da mesma maneira. Pronto , já temos nossa aplicação conectada a nosso banco de dados. Vejam que com poucas linhas de códigos já conseguimos fazer algo que se fosse feito com PHP “puro” daria um pouco mais de trabalho.
Agora precisamos configurar o nosso controller para que ele pegue essa função listar() do model e passe o resultado para a nossa view, para que o usuário possa visualizar os dados que estão no banco. Fazemos as seguintes alterações:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Artigos extends CI_Controller { public function index(){ $this->load->model("Artigos_model"); $artigos = $this->Artigos_model->listar(); $dados = array("artigos" => $artigos); $this->load->view('artigos', $dados); } }
O que fizemos foi carregar o model que criamos no nosso controller, e guardamos na variável $artigos o resultado da nossa função listar(). Criamos um array chamado $dados, passando o nosso artigos para ele, assim poderemos passar outras informações futuramente para nossa view. Por fim, passamos os $dados para a nossa view artigos.
Mostrando os dados na view
Agora precisamos mostrar os dados enviados para a view. Acessamos nossa pasta view e abrimos o arquivo artigos.php onde está nossa tabela. Então em vez de dados estáticos na tabela, pegamos a nossa variável $artigos passada e fazemos um foreach como mostra o código a seguir:
<html> <body> <h2>Artigos do nosso blog</h2> <table> <tr> <th>Titulo</th> <th>Conteúdo</th> </tr> <?php foreach($artigos as $artigo){ ?> <tr> <td> <?= $artigo['titulo'];?> </td> <td> <?= $artigo['conteudo'];?> </td> </tr> <?php } ?> </table> </body> </html>
Nosso resultado será este:

Com isso, vimos que com pouquíssimo código e algumas configurações conseguimos conectar com o banco de dados e mostrar esses dados para o usuário. Porém nossa listagem está meio feia e apática, no próximo post vamos mostrar como colocar o boostrap para deixar nosso site mais bonito e responsivo.
Até a próxima!