Falar de PHP e fazer uma introdução ao CodeIgniter é uma tarefa simples, porque esta ferramenta oferece tantas facilidades ao desenvolvedor que na hora de escrever tenho que ficar medindo palavras para não parecer exagerado ou otimista demais.

Introdução

Bom, se você desenvolve ou tem algum conhecimento prévio sobre o PHP sabe que existem muitas soluções disponíveis que podem auxiliar em vários aspectos dos seus projetos, bem como, também sabe que o PHP é projetado para inúmeras aplicações, sejam softwares com fim específicos ou páginas da internet simplesmente.

Credibilidade da ferramenta

Ela foi inicialmente desenvolvida pela EllisLab e durante bastante tempo mantida pela mesma, quando em meados de 2014 anunciou o desejo de ter um novo mantenedor para a ferramenta, uma vez que a empresa é voltada para o segmento de CMS e ao que tudo indica, dedica-se muito a ferramenta ExpressionEngine, feita sobre o CodeIgniter.

Em 2014 a EllisLab concretizou este desejo e anunciou que a instituição escolhida foi BCIT (British Columbia Institute of Technology), um instituto politécnico de ensino superior e tecnologia aplicada com mais de 48 mil alunos, localizado em Vancouver, no Canadá.

Felizmente esta nova casa fez bem para o CodeIgniter e o mesmo conta com novas versões. Isso naturalmente causou um alívio e a certeza da continuação do projeto e a manutenção e desenvolvimento de novas versões, como a futura 4.x.

Download

Download e instalação seguem os padrões, está disponível no próprio site (www.codeigniter.com), portando basta acessar e baixar.

Se este for seu primeiro contato com alguma ferramenta PHP ou WEB, aconselho você pesquisar sobre XAMPP, Apache, PHP, MySQL e outras ferramentas para um melhor entendimento.

De agora em diante, parto do principio que você já tem algum conhecimento sobre as mesmas e dou continuidade com as informações relativas a instalação.

CodeIgniter-instalação

Instalação

Bom, eu frequentemente tenho uma pasta chamada estudo dentro de minha instalação do XAMPP. Ou seja, o caminho desta pasta é c:\xampp\htdocs\estudo aonde eu coloco as aplicações e ferramentas que estou aprendendo e que tem relação com internet, php e etc.

Então, como a versão que baixei é a 3.0.6 a pasta fica como a imagem a seguir:

A pasta application contém o seu software e a system contém CI em si. Isso é importante porque em caso de necessidade de atualização de um ambiente de produção com uma versão de desenvolvimento basta você copiar os arquivos da aplicação.

Pastas do aplicativo

A pasta que mais nos importa neste momento é a application e aproveitando vou listar suas pastas e já descrever suas funcionalidades:

application/config

Aqui estão os principais arquivos de parametrização de sua aplicação. Por exemplo se seu software vai usar um banco de dados, então nesta pasta você configura isso abrindo o arquivo database.php. Note que os nomes são bem escolhidos e tem relação importante com a finalidade.

database.php – Banco de dados

config.php – Configurações gerais

autoload.php – Arquivo para indicar bibliotecas que você deseja usar em toda a aplicação

routes.php – Caminhos alternativos que você deseja ter

E, assim por diante.

Se analisar editando o arquivo database.php por exemplo, vai ver que é mais uma declaração de variável array com seus parâmetros do que qualquer outra coisa:

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'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
);

Basta preencher os campos apropriados com dados do seu servidor e pronto, será o bastante para que a conexão de dados funcione futuramente.

MVC

Antes de mais nada o conceito de Model, View, Controller está evidente em aplicações com CI, visto que as pastas estão definidas e inclusive possuem conteúdo de exemplo em sua instalação.

Para a sua primeira aplicação usando CI rodar você deve acessar o endereço da sua máquina e pasta, sendo similar a este: http://localhost:89/estudo/CodeIgniter-3.0.6/ considerando que meu XAMPP está rodando da seguinte forma:

xampp

xampp

Sendo que a janela inicial de uma primeira aplicação CodeIgniter que vem (pronta, digamos assim), é semelhante a esta:

CI: Welcome

CI: Welcome

Se apareceu isso pra você, parabéns deu tudo certo com sua instalação.

Primeiros passos

Como a aplicação é MVC tenha em mente que cada parte de seu software vai estar em uma das pastas: models, views, controllers. Veja que seus nomes são no plural, isso porque é normal termos vários arquivos em cada categoria.

É importante salientar que dentro destas pastas pode-se ter subpastas e que ainda existem variações de aplicações que embora sejam escritas usando-se de CodeIgniter podem estar com M, V, C, em pastas diferentes dessas. Dá um pouco de trabalho e eu desaconselho fazer este tipo de movimento antes de aprender a ferramenta como ela foi projetada.

Se olhar para a pasta controller da sua instalação vai se deparar com um arquivo chamado Welcome.php

O conteúdo dele é muito simples pois conta com duas ou três linhas de código apenas e com várias de comentários e informações que não tem muita importância de inicio:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->load->view('welcome_message');
}
}

E o mais importa nesse código é $this->load->view(‘welcome_message’);

Quando executamos uma aplicação CI, o mesmo procura por um controller que seja passado como um segmento de nosso endereço, ex: http://localhost:89/estudo/CodeIgniter-3.0.6/index.php/clientes/list, internamente o CI vai buscar um controller chamado clientes e dentro deste controller vai buscar uma função chamada list.

No caso do exemplo que foi trazido com a instalação e se comparar com o que acabei de falar, o CI vai funcionar da mesma forma se fizermos uma chamada a /index.php/welcome/index visto que existe um controller com este nome e existe nele uma função chamada index.

Se você chamar /index.php/webcome terá o mesmo resultado, pois, uma regra de CI é que index será sempre a função a executar caso não seja indicada uma.

Portanto, para exemplo, qualquer uma das formas a seguir vai funcionar:
http://localhost:89/estudo/CodeIgniter-3.0.6/index.php/welcome/
http://localhost:89/estudo/CodeIgniter-3.0.6/index.php/welcome/index

Importante: No seu computador ajuste o localhost:89 de acordo com sua configuração (normalmente é localhost apenas).

Aprofundando um pouco mais

Agora que você já sabe algumas informações, ao olhar a pasta views vai ver que tem lá um arquivo chamado welcome_message.php e finalmente começa a fazer sentido aquela linha de comando lá do Welcome.php da pastinha controller.

Então agora cabe a você experimentar e a primeira coisa que pode fazer é acrescentar mais uma função no welcome.php, algo como o texto a seguir:

public function minhafuncao()
{
$this->load->view(‘welcome_my_message’);
}

Tem alguma ideia do que mais está falando depois que fizer isso?

Se você falou criar um welcome_my_message.php nas views acertou.

Então faça isso, colocando um conteúdo HTML tipo isso:

Se já fez, bora fazer o teste acessando o endereço:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Olá!</title>
</head>
<body>

<div id="container">
<h1>Minha mensagem!</h1>

<div id="body">
<p>Meu primeiro programa com CodeIgniter!</p>
</div>
</div>

</body>
</html>

http://localhost:89/estudo/CodeIgniter-3.0.6/index.php/welcome/minhafuncao

CI: minha função

CI: Minha função

Então, faça agora você os seus softwares e ferramentas agregando mais conhecimento no seu bloco de notas da vida. Existe muito conteúdo na internet que falam de forma mais aprofundada sobre CI e claro estou ancioso para saber suas experiências com o aprendizado desta ferramenta.

Finalizando

Para concluir eu sugiro que você estude mais sobre esta ferramenta porque as atividades que parecerão dificultosas inicialmente se converterão em facilidades futuras impagáveis. Tenho alguns aplicativos WEB, desenvolvidos com esta ferramenta, mas, que não trazem nenhum tipo de incomodo do ponto de vista técnico dadas as facilidades de manutenção e detecção de possíveis problemas com esta ferramenta.

Então, estude mais, entenda bem o conceito MVC e deixe aqui nos comentários o que você gostou ou deixou de gostar neste artigo para que eu possa melhorar as próximas abordagens. E, naturalmente se tens um amigo programador ou que deseja aprender um pouco mais, divulga nosso canal para ele, pois, juntos poderemos aprender cada vez mais sobre esta maravilhosa arte que é o desenvolvimento de aplicativos e softwares que movem o mundo.

Obrigado por ler, contribuir, compartilhar e até a próxima.

Posted by Gabriel Moraes

Criador e mantenedor do blog. Atuo na área de suporte à 4 anos e curso Análise e Desenvolvimento de Sistemas.