Sie sind auf Seite 1von 3

Desenvolvimento com Codeigniter

Ol, hoje irei explicar como configurar (ao menos como eu uso) uma instalao bsica do Codeigniter pronta para desenvolver a sua aplicao.

O que iremos fazer


Neste primeiro tutorial, iremos criar um template, de modo que voc no repetir mais contedo desnecessrio (Dont repeat yourself), como cabealhos e rodaps. Ao final desse tutorial voc ter uma aplicao que: Ter uma pgina de template, que carregar suas views dinamicamente. O ttulo da pgina tambm ser trocado dinamicamente. Poder facilmente fazer alteraes futuras no template, ou at mesmo criar outro, e alterar somente uma linha para usar o novo, podendo depois voltar para os antigos.

Conhecimentos
Esse tutorial assume que voc j tem algum conhecimento sobre como funciona a estrutura MVC. Se voc no sabe o que ou como funciona, leia esse artigo antes de iniciar. Tambm j deve ter tido alguma experincia com o framework. Se voc sabe como funciona MVC mas nunca usou o Codeigniter, recomendo assistir essa vdeo-aula.

1 Nova Instalao do Codeigniter


Faa o download do framework em http://codeigniter.com/downloads/. Descompacte-o em sua pasta do servidor local (no meu caso em /srv/www/htdocs/). Se quiser renomeie a pasta extrada para qualquer nome de sua prefrencia. Normalmente eu tiro a pasta application de dentro da pasta system, para uma melhor organizao. Feito isso, abra o arquivo application/config.php e altere a linha 14 para o seu diretrio padro (localizao da sua pasta no servidor). No meu caso ficou assim:
$config['base_url'] = "http://localhost/ci/";

Feito isso seu Codeigniter j est pronto para continuarmos. Acesse no seu navegador: http://localhost/ci (ou troque ci pelo nome da pasta que voc renomeou) e ver a tela de boas vindas. A estrutura padro dos endereos : ../index.php/Controller/Mtodo/Parmetro. Onde .. a sua base_url (ver explicao logo acima). PS: irei usar .. para representar a base_url daqui pra frente.

2 Criando nosso controller


Crie um arquivo chamado site.php no diretrio application/controllers/. Esse ser o controller principal do site. A estrutura ficar assim:
class Site extends CI_Controller { // herda as caractersticas da classe Controller do CodeIgniter, todos os controllers sero suas subclasses function __construct() { parent::__construct(); //chama o construtor da superclasse, este pode ser usado para carregar qualquer tipo de componente do sistema } function index() { // mtodo principal do controller, acessvel em ../index.php/site/index ou ../index.php/site/ echo 'Mtodo Index do Controller Site'; }

3 Criando o Template
Ok, com o controller funcionando, criaremos finalmente o template da nossa aplicao. Como voc j deve ter visto, o comando para exibir as views :
$this->load->view('nome_da_view');

E comum usarem da seguinte forma, em cada funo, para gerar templates :


function exemplo() { $this->load->view('topo'); $this->load->view('view_exemplo'); $this->load->view('rodape'); }

Isso no est errado, porm h uma forma mais simplificada de fazer isso, como veremos agora. Usando nosso controller site como base, vamos criar duas propriedades (ou atributos) na nossa classe:
class Site extends Controller { private $_tpl = 'themes/template1'; private $dados = array();

Criamos aqui a propriedade _tpl, que nada mais do que a localizao da view do template (criei um diretorio para colocar s os temas). Se voc criar outro template, basta alterar aqui. A segunda propriedade $dados, um array em que ser passado dados para exibir nossa view, como o ttulo da pgina e a view que ser carregada no template. Vou alterar a funo index como exemplo:
function index() { $this->dados['titulo'] = 'Ol, seja bem vindo !';

$this->dados['pagina'] = 'principal'; $this->load->view($this->_tpl, $this->dados); }

Aqui carreguei a view themes/template1, e passei para ela todos os dados de $dados, agora veremos como ficar nossa view application/views/themes/template1.php Percebam que criei um layout bem bsico, na tag title, est mandando imprimir a varivel $titulo, vinda do controller atravs do array $dados (note que o array no passado, tudo que vem dentro dele se torna uma varivel dentro da view). Talvez o mais difcil de entender aqui seja essa parte: Dentro da div#main_content, eu dei o comando pra carregar outra view, a varivel $pagina, que como definida no nosso controller ser a principal, fazendo com que o template carregue qualquer view definida nos controllers. Para exemplificar melhor criarei outro mtodo. Tambm criei uma view menu, e um estilo em css, como podem ver na estrutura do meu projeto (amplie a foto). O controller ficar assim ao final do tutorial:
class Site extends CI_Controller { private $_tpl = 'themes/template1'; private $dados = array(); function __construct() { parent::__construct(); } function index() { $this->dados['titulo'] = 'Ol, seja bem vindo !'; $this->dados['pagina'] = 'principal'; $this->load->view($this->_tpl, $this->dados); } function outraview() { $this->dados['titulo'] = 'Ol, essa outra view !'; $this->dados['pagina'] = 'outra_view'; $this->load->view($this->_tpl, $this->dados); } }

Voc deve estar se perguntando, como vou incluir javascripts? Simples, voc adiciona somente nas views que for realmente utilizar, at uma boa prtica, incluir os seus javascripts no final do arquivo, tendo assim uma renderizao progressiva da pgina.