Codeigniter – O poderoso framework PHP Parte 2

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.

Tela inicial do projeto.
Tela inicial do projeto.

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:

Tela inicial com tabela.
Tela inicial com tabela.

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.

Tela inicial PhpMyadmin
Tela inicial PhpMyadmin

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.

Arvore de base de dados do PhpMyadmin
Arvore de base de dados do PhpMyadmin

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.

Aba estrutura no PhpMyadmin
Aba estrutura no PhpMyadmin

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.

Lista de dados na tb_artigos
Lista de dados na tb_artigos

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.

Pasta model
Pasta 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.phpNo 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:

View retornando dados do banco
View com retornando dados do banco

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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *