Introdução ao CodeIgniter Framework

Estou iniciando hoje uma série de posts a respeito do CodeIgniter Framework (http://ellislab.com/codeigniter) . Para quem não conhece o CodeIgniter, trata-se de um framework desenvolvido sobre o padrão MVC e que serve para auxiliar a implementação de projetos em php de forma extremamente ágil.

Nesse primeiro artigo vou ensinar a baixar, instalar e configurar o CodeIgniter. Em posts futuros vou abordar as várias e distintas funcionalidades que o framework disponibiliza.

Pois bem, antes de começarmos efetivamente a “mexer” no CodeIgniter (que irei chamar carinhosamente de “CI”) é bom recordar o que na prática significa o padrão MVC.

MVC (Model – View – Controller)

Bom, o MVC (sigla para Models-Views-Controllers) é um padrão de desenvolvimento de software que consiste em separar a lógica de negócios da apresentação (o que efetivamente é visto pelo usuário). Isso garante organização, padronização, agilidade e segurança na hora de implementar soluções, principalmente em plataforma web.  Dentro do MVC, cada camada tem a sua função/responsabilidade bem estabelecida:

Model: Aqui que é definida a regra de negócios. Nessa camada podemos definir por exemplo como a abstração de dados será conduzida e como esses dados serão validados na hora da  inserção / recuperação.

Controller: É o responsável pelo fluxo da aplicação (Faz o meio-de-campo entre Models e Views). Neles podemos requisitar por exemplo à algum Model que recupere alguma informação do banco de dados que será exibida em uma determinada View.

View: É a camada de apresentação do sistema. Aqui basicamente só existe códigos Front-End (HTML, CSS, JS, etc). Ele também pode exibir informações designadas pelo Controller.

Frameworks

Hoje em dia existem inúmeros frameworks escritos. Cada qual com suas características, mas todos com o mesmo objetivo: facilitar a vida do programador. No mundo do php podemos destacar o Zend Framework (desenvolvido pela mesma equipe que mantém a linguagem), o CakePHP, o Kohana, Yii, CodeIgniter e por aí vai.

Eu particularmente já participei de um projeto utilizando o Zend e tive dificuldades. A curva de aprendizado é muito alta, o que faz com que você “quebre a cabeça” na documentação ou em materias de estudo até que consiga criar algo concreto. Eu sinceramente recomendaria o Zend apenas para projetos extremamente grandes.

O Cake eu nunca utilizei em produção mas já estudei a respeito. A curva de aprendizado já é bem menor se comparado ao Zend. Sua instalação e configuração são bem simples e sem nenhum segredo. Mas para usar todos os recursos nativos e implementar do jeito que manda a regra é complicado. É como se precisasse aprender outra linguagem de programação. Isso talvez tenha me “embarreirado” à usar o framework.

Foi então que fui conhecer o CodeIgniter e simplesmente me facinei. A curva de aprendizado é realmente baixa. O seu User Guide é extremamente didático e fácil de compreender/entender. Em poucos minutos é possível baixar, instalar, configurar e rodar uma aplicação.  Dentre as principais vantagens do CI, destaco o baixo acoplamento  e a facilidade em extender as libraries, helpers e arquivos de core nativos. Com isso é possível deixar o framework bem com “sua cara”. Sem contar que a comunidade do CI é bastante ativa tanto no Brasil como no resto do mundo.

Vamos ao CodeIgniter

Chega de conversa e vamos logo ao que interessa. Acesse o site oficial do CodeIgniter e baixe a última versão estável disponível (até a data desse post é a 2.1.3). Feito isso extraia os arquivos e mova-os para dentro do seu servidor de aplicações. Você terá o seguinte esquema de diretórios:

  • application: onde você desenvolverá a sua aplicação. É aqui dentro que você implementará seus Models, Views, Controllers, Helpers, Libraries, etc.
  • system: onde está o coração do CI. É aqui que estão todos os arquivos necessários para que o framework funcione corretamente. Só altere os arquivos dessa pasta se tiver bastante conhecimento e souber bem o que está fazendo.
  • user_guide: O Guia do Usuário. Uma documentação fantástica para você sanar todas as suas dúvidas sobre o CI.
  • index.php: Arquivo padrão do sistema. Ele faz a chamada dos arquivos necessários para a execução da aplicação.
  • license.txt: Termos de licença e utilização do framework

Explorando mais a pasta application:

  • cachePasta para colocar os arquivos de cache
  • config: Arquivos de configuração da sua aplicação (banco de dados, rotas, constantes, autoloads, etc)
  • controllers: Pasta com os controllers da sua aplicação
  • core: Coloque aqui seus arquivos de core da aplicação
  • errors: Pasta com as páginas de erros
  • helpers: Pasta para colocar os helpers da sua aplicação
  • hooks: Pasta para colocar os Hooks da sua aplicação
  • language: Arquivos de configuração de idioma da sua aplicação
  • libraries: Pasta para colocar as libs da sua aplicação
  • logs: Pasta para os arquivos de log
  • models: Pasta com os models da sua aplicação
  • third_party: Crie módulos independentes para sua aplicação
  • views: Pasta com as views da sua aplicação

Bom, agora que sabemos um pouco sobre o que acabamos de baixar e descompactar, vamos colocar tudo para funcionar.

Entre na pasta de configuração de sua aplicação e abra o arquivo config.php (application/config/config.php). Note que nesse arquivo temos diversas opções para configurar como por exemplo a URL da aplicação, a página inicial, o idioma, e tantas outras. Nós vamos definir a base_url (A URL base mesmo) do nosso projeto. Como estou utilizando o WAMP e extrai os arquivos dentro de uma pasta chamada ci no www, a minha configuração ficará da seguinte maneira:

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
|	http://example.com/
|
| If this is not set then CodeIgniter will guess the protocol, domain and
| path to your installation.
|
*/
$config['base_url']	= 'http://localhost/ci/';

Agora vamos ao navegador e acessar a nossa aplicação. (Aqui foi o http://localhost/ci)

Se você não fez nada errado, perceberá que foi acessado uma página de boas-vindas do CI. Nessa página é informado que estamos na view “application/views/welcome_message.php” e que o controlador responsável é o application/controllers/welcome.php”. Calma, não há nada de errado. É isso mesmo que acontece quando acabamos de instalar o CI.

Se você abrir o arquivo application/config/routes.php perceberá que controller padrão (default_controllerrealmente está apontando para welcome.php. Isso significa que se você acessar a página principal do projeto você será sempre encaminhado à página de boas-vindas do CI. Não se preocupe, isso pode ser facilmente modificado quando você começar a criar seus próprios controllers e views.

Bom, por hoje é só. Nos próximos posts veremos funcionalidades mais detalhadas desse poderoso framework chamado CodeIgniter.

Espero que estejam gostando!.

Grande abs!

Confira todos os posts da série CodeIgniter Framework

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Muito obrigado por compartilhar o conhecimento, estou num projeto que utilizará php, estava perdido, mas graças ao seu blog não estou mais. Vlw

  2. Rafael satisfação de troca uma ideias com vc sobre CodeIgniter, faço um curso técnico de internet para informatica centro paulo souza na cidade de Araras sp e meu professor pediu um trabalho para eu montar um site usando PHP + CodeIgniter tem que ser um código fonte com o CodeIgniter e um banco de dados Mysql para abrir uma pagina com entrada de (Box com nome , Email, senha, comentário) e quando esta pagina se abrir mostrar o banco de dados com alguns dados que eu possa criar como cliente por EX: sera que vc não consegue me da uma ideia como que eu posso desenvolver este trampo não Rafael.
    agradeço sua atenção…

Deixe um comentário

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