Nesse tutorial de CodeIgniter, nós introduziremos sistematicamente este framework para o leitor. Você vai aprender como instalar e configurar o CodeIgniter na hospedagem compartilhada da Hostinger, juntamente com a construção de sua primeira aplicação PHP utilizando este framework muito difundido. Você também vai descobrir mais sobre MVC e o porquê de ser uma ferramenta crítica para desenvolvimento da web moderna.
O que é o CodeIgniter
Passo 1 – Instalando o CodeIgniter
Passo 2 – Configurando o CodeIgniter
Passo 3 – Entendendo de MVC
Passo 4 – Criando um Simples App com o CodeIgniter
Nos dias de hoje no campo de desenvolvimento de web, eficiência e modularidade estão em alta. Os dias em que você tinha que reescrever o mesmo código para múltiplas aplicações ou fazer um esforço maior do que o necessário para construir sua aplicação de uma forma dinâmica já passaram. Framework da web moderna fazem tudo isso para você.
CodeIgniter é desses frameworks disponíveis para desenvolvedores PHP. Sendo o mais popular entre os seus semelhantes, pois acelera o desenvolvimento web em PHP (incluindo hospedagem PHP) por conta de seu vasto arranjo de pacotes e bibliotecas. Essas bibliotecas são desenvolvidas para áreas do desenvolvimento de web onde a reutilização de códigos é comum, tirando das mãos dos desenvolvedores um bocado de trabalho.
Baseado na arquitetura modelo-visão-controlador (MVC), o CodeIgniter também adiciona uma camada de lógica para suas aplicações de web. Isso não só contribui para um design mais limpo, mas também é útil em paralelo com certos processos no ciclo de desenvolvimento. Resultando disso, seus produtos terão uma alta resposta a possibilidade de mudanças de mercado e negócios mais rapidamente.
Os pré requisitos deste tutorial incluem conhecimento básico em PHP, assim como algum tipo de experiência com a linha de comando Linux.
Acesso SSH para compartilhamento de hospedagem ou VPS
Nano ou qualquer outro editor de texto
Este tutorial também está disponível em nosso canal do YouTube! Assista abaixo:
Para instalar o CodeIgniter, você precisa ter uma hospedagem Hostinger ou LAMP (Linux, Apache, MySQL, PHP) já ativos e rodando o VPS no seu sistema local. VocÊ pode seguir este tutorial em qualquer versão Linux, e naturalmente, nós estamos usando a conta Hostinger de compartilhamento de hospedagem.
Primeiro de tudo, você precisa acessar a sua conta via SSH. Se você não tem certeza de como fazer isso, siga este tutorial.
Para iniciar o processo de instalação, abra o terminal e entre na pasta public_html. No seu caso, realize o seguinte comando:
Agora, você precisa fazer o download da versão mais atualizada do CodeIgniter, Você pode fazer isso apenas acessando a página oficial e baixando o arquivo em zip. Durante a criação deste tutorial, a última versão do CodeIgniter disponível é a 3.1.4:
Para dezipar o arquivo, execute o comando seguinte:
Se você está instalando o CodeIgniter no VPS, é possível que você não tenha o Zip instalado no seu sistema. Sendo esse o caso, um erro pode aparecer após digitar o comando. Você pode resolver esse problema simplesmente fazendo o download e instalando unzip, dessa forma:
Agora você deverá estar habilitado para dezipar sua cópia do CodeIgniter.
Assim que dezipado, você deverá ser capaz de ver o diretório chamado CodeIgniter-3.1.4. Você pode renomeá-lo por conveniência caso queira seguindo esse passo:
Agora abra seu navegador e digite o caminho para essa pasta.
http://seudominio.com/codeigniter
Você deverá ver a tela de boas vindas padrão do CodeIgniter. Isso significa que o CodeIgniter teve sucesso em sua instalação.
Depois de instalar sua cópia do CodeIgniter, você precisa configurá-la antes de qualquer coisa. Mesmo sendo a parte mais tediosa do tutorial, a configuração é feita apenas uma única vez poupando dores de cabeça futuras.
Comece criando uma nova base de dados MySQL. Na Hostinger, você pode fazer isso na sessão de base de dados MySQL.
Para iniciar o processo de configuração, você precisa abastecer o CodeIgniter com todo tipo de informação relevante sobre a sua data base MySQL. Você pode fazer isso alterando o arquivo database.php no seu CodeIgniter. Abra o arquivo e execute o comando seguinte:
O conteúdo do arquivo deve se tornar visível para você. Encontre a sessão seguinte do arquivo e inclua a informação específica para a configuração da sua base de dados MySQL. Por exemplo, para conectar com a base de dados da Hostinger, a configuração deve se parecer com isso:
Assim que o arquivo esteja atualizado com todas informações relevantes, salve e feche. E é isso, você acabou de sincronizar sua base de dados com o CodeIgniter.
Seguindo adiante com nosso tutorial, você deverá agora configurar seu registro de domínio. Para fazer isso, abra o arquivo config.php e execute:
Assim que aberto, descubra onde a seguinte linha se encontra e edite de acordo com suas necessidades.
$config['base_url'] = 'http://seudominio.com';
Essa linha significa que se você tem seudominio.com como seu registro de domínio direcionado ao diretório onde o CodeIgniter está instalado (último comando do Passo 1), você deverá editar o arquivo config.php para se parecer como a linha acima.
2.1 Configurando Host Virtual no VPS
Pule este passo caso você esteja instalando o CodeIgniter na hospedagem compartilhada Hostinger.
Hosts Virtuais são úteis caso você queira rodar múltiplas aplicações usando um único registro de domínio. Isso pode te ajudar caso você tenha uma única VPS e múltiplas aplicações, produções ou outros, sendo executados. Você pode criar um host virtual usando seu servidor Apache.
Enquanto a criação de hosts virtuais está além do foco desse tutorial, você pode fazer algumas mudanças adicionais nas configurações do CodeIgniter antes de iniciar formalmente o seu desenvolvimento.
Primeiramente, você deve confirmar que o seu documento root está sincronizado com o diretório de instalação do CodeIgniter. Você pode fazer isso ao abrir o arquivo do seu host virtual:
Assim que aberto, procure pelo bloco seguinte e insira o diretório de instalação na frente do documento root.
Certifique-se de alterar o /path/to para o verdadeiro caminho.
Agora, todas as suas URLs vão apontar para tudo o que você tenha instalado no CodeIgniter. Para a mudança seguinte, é preciso algum contexto. Por padrão, o CodeIgniter mantém o seguinte formato de URL:
<base_url>/index.php/<controller_name>/<controller_function>/<function_parameter_1>/>/<function_pa
rameter_2>…
Como você pode ver, index.php é a única parte estática da URL. Com o propósito de uma melhor prática de desenvolvimento, nós temos que se livrar disso tudo.
Para fazer isso, abra o arquivo config.php novamente:
E substitua a seguinte linha:
Isso é apenas metade do trabalho. Para garantir que você não seja bombardeado com erros, você precisa redirecionar essas entradas usando o arquivo .htaccess.
Antes de fazer isso, confira se o mod_rewrite está habilitado:
Isso vai fazer com que o Apache liste várias das capacidades do servidor. Se você encontrar o mod_rewrite na lista, siga para o próximo comando. Caso não encontre, execute esta linha:
E reinicie o seu servidor de web.
Agora crie o arquivo .htaccess na pasta root do seu CodeIgniter:
Isso vai criar e abrir o arquivo .htaccess. Insira as seguintes linhas no arquivo, salve e feche:
Por fim, você precisa deixar com que o Apache saiba que o novo arquivo .htaccess existe. Para fazer isso, abra o arquivo do host virtual novamente e confirme que AllowOverride esteja indicado para All.
Agora você não vai mais se preocupar com o irritante index.php na sua URL. Com isso, suas URLs vão parecer mais limpas.
Para realmente entender o que faz com que frameworks como CodeIgniter são dignos de atenção, você precisa dedicar algum tempo desse guia para aprender mais sobre MVC.
MVC é predominantemente um paradigma de arquitetura em desenvolvimento de web, que recomenda que em qualquer aplicação, a lógica do negócio precise ser dividida em sua apresentação. Ele divide a aplicação em três partes funcionais: modelos, visão e controles.
Os modelos fazem todo o trabalho sujo – eles são responsáveis por lidar com sua base de dados, realizando cálculos, etc. Em suma, é onde a lógica de negócios é localizada. A visão, por outro lado, não tem nada a ver com a lógica de sua aplicação. Eles formam uma camada de apresentação de sua aplicação, incorporando os dados vindos de seus modelos quando as páginas carregam. Controles são a força vinculativa entre os modelos e a visão. Eles direcionam pedidos relevantes aos modelos, e assim que o modelo tenha feito o serviço, ele carrega a visão relevante.
Assim que a CodeIgniter subscreve o software orientado por objetos (OOP), todos modelos e controles se tornam classes PHP estendendo a classes de base fornecida pelo framework. A visão também é importante para arquivos PHP, mas apenas de nome, assim que a maioria de seu conteúdo é HTML/CSS. Muito pouco de código PHP está presentes, a fim de mostrar os dados providenciados pelos modelos.
MVC dá aos desenvolvedores uma flexibilidade maior em termos de reutilização de código e separação de design para desenvolvimento. Você pode ter um ninho de visão para que você não precise escrever o mesmo código para visões múltiplas – um bom exemplo seria uma barra de navegação que em todas páginas do seu site. E assim como ambos visão e modelos são entidades separadas, os desenvolvedores front-end podem trabalhar em paralelo com o time de back-end a fim de reduzir drasticamente o tempo total de desenvolvimento.
3.1 – Roteamento Básico
Nós já vimos como o o CodeIgniter formata as strings de sua URL:
Na sessão prévia, nós aprendemos como remover o index.php do formato. Como resultado, o template vai traduzir as URLs similares para o seguinte:
Aqui welcome é uma classe de controle correspondente ao arquivo de controle nomeado welcome.php. Dentro dessa classe, a função tester() será chamada e passar a ter '1' como parâmetro. Qualquer parâmetro posterior será colocado em um padrão similar, separado por barras.
Como você pode ver, fazer um roteamento é muito fácil no CodeIgniter. Você pode experimentar e criar rotas mais complexas, mas que não serão mais exploradas por aqui.
Outra função importante do CodeIgniter é o seu encorajamento a reutilizar soluções já existentes para resolver tarefas comuns rapidamente. O CodeIgniter faz isso providenciando bibliotecas e funções de ajuda (helpers). A diferencial competitivo da ColdIgniter é o que faz com que desenvolvedores possam escolher e selecionar bibliotecas para carregar e onde carregá-las. Isso resulta em rápidas, leves e ainda assim aplicações ricas em funções, por conta de suas bibliotecas bem abastecidas.
Carregar a biblioteca é muito simples com o CodeIgniter. Apenas passe a linha seguinte no seu modelo
Algumas bibliotecas e ajudantes são tão comuns que, de fato, é bem melhor carregá-las automaticamente logo na inicialização do seu site. Exemplos incluem a biblioteca de base de dados, que são uma parte essencial de qualquer aplicação de web moderna, e o ajudante de URL que pode ser útil para carregar as URLs mais facilmente.
Para carregar automaticamente sua biblioteca de Base de Dados, abra p arquivo seguinte:
Assim que aberto, o substitua com linha seguinte:
Você pode carregar automaticamente bibliotecas adicionais com o método array(), separado por vírgulas.
De forma parecida, para os ajudantes você vai precisar substituir isso:
Conhecendo mais sobre MVC, esperamos que você possa apreciar mais profundamente as muitas facetas do CodeIgniter.
Certo, com as formalidades fora do caminho, nós podemos finalmente chegar no tesouro do tutorial. Nesse ponto de nosso tutorial de CodeIgniter, você já deve ter instalado uma versão do CodeIgniter com as devidas mudanças feitas quando configuramos o Passo 2. Você também já deve estar mais familiarizado como os modelos, visões e controles funcionam no CodeIgniter. Nesta sessão nós vamos utilizar esses conhecimentos para criar uma aplicação simples.
A aplicação será bastante simples em relação ao seu design: nós usaremos o nosso modelo para capturar grades de reviews de filmes de nossa base de dados e mostrá-los um por um usando nossa visão. Assim que você já estiver passado pelos fundamentos do CodeIgniter, você deve seguir em frente e começar a construir aplicações cada vez mais ricas.
Passo 4.1 – Pré Requisitos
Como evidenciado na introdução desse tutorial, é requisitado um conhecimento básico em MySQL do leitor. Para nossa aplicação simples, você precisa criar uma única tabela de títulos dos reviews com 3 colunas de nome id (primary key e auto-incremented), título e grade.
Você deve continuar e criar essa tabela, assim que ela se torne a base de sua aplicação. O CodeIgniter deverá ter acesso a sua base de dados se você seguir corretamente as instruções do Passo 2. Após criar a tabela, preencha com valores provisórios.
Passo 4.2 – O Modelo
Depois de trabalhar sua base de dados, nós podemos iniciar os feitos na lógica de negócios. Para fazer isso, nós criaremos um modelo que receberá os valores de sua base de dados.
Modelos são colocados no diretório applications/models do CodeIgniter. Isso é feito para prevenir que uma bagunça seja feita na estrutura do seu diretório. Vá até o diretório e crie um novo arquivo PHP chamado reviews_model.php.
Assim que criado, cole o seguinte código no arquivo:
class Reviews_model extends CI_Model {
Como você pode ver, sua classe modelo Reviews_model extende a classe genérica CI_Model feita pelo CodeIgniter. Também perceba que a primeira letra de sua classe está em caixa alta, pois o CodeIgniter requer que classes comecem letra maiúscula.
Agora, você precisa carregar a livraria da Base de dados que mencionamos no Passo 3. Isso vai fazer com que trabalhar nas bases de dados seja muito fácil. Você pode usar o método construtor do modelo, o que efetivamente vai carregar a biblioteca desde o inicio. Para isso, cole o seguinte código dentro da classe criada abaixo:
Agora, a base de dados da biblioteca vai estar visível em cada método dentro da classe. Após isso, nós precisaremos criar outro método que usará a biblioteca da base de dados para inquirir a base de dados.
O método cima simplesmente toma um ID como argumento e retorna toda informação nas colunas associadas a esse ID. Portanto, esse método será o escolhido para cada vez que nós precisarmos fazer um review de um filme.
Passo 4.3 O Controle
Cuidamos do nossas camadas de dados. Agora precisamos criar uma rota que faça com que quando o usuário busque pelas análises de um filme, nossa visão seja abastecida pela informação que criamos usando o modelo.
Para criar um novo controle, vá até o diretório application/controllers e crie um arquivo nomeado reviews.php. Lembre-se: Controles do CodeIgniter precisam que o nome do arquivo seja o mesmo que a classe definida dentro desse arquivo.
Depois de criar o arquivo, abra-o e cole o código seguinte:
Tudo o que você precisa fazer agora é coletar os dados do seu modelo e passar para a visão. Para fazer isso, nós criaremos um método chamado show(), que liga os dados a uma estrutura recém criada e carrega a visão com a estrutura transmitida para ela.
Esse array $data é um array associativo, com títulos chave e grades correspondente aos valores recebidos pela base de dados. Esse array é transmitido para uma visão de nome movie_review e essa visão em questão é carregada.
Passo 4.4 A Visão
Finalmente, nós criaremos uma visão que irá mostrar as reviews de filmes escolhidas.
Entre na pasta application/views e crie um novo arquivo de nome movie_review.php. Perceba que o nome do arquivo precisa corresponder ao nome que você estabeleceu para o controle carregar (última linha do método show() ). Depois de criar o arquivo, cole o código seguinte:
A visão simplesmente mostrará o título do filme, assim como sua grade, de maneira com que eles sejam enviados por um controle no array de $data. Não precisamos dizer que o resultado não será muito bonito, pelo motivo de que nós não incluímos nenhuma estilização na nossa visão. Claro que você pode adicionar uma inline styling (não recomendado) ou referenciar estilos CSS a sua visão.
Nossa aplicação de teste está completa. Você poderá ver o resultado ao digitar o seguinte endereço seguinte no navegador:
http://seudominio.com/reviews/show/1
Isso vai acessar o controle das reviews que criamos no Passo 4.3 e acionar seu método show() com um parâmetro 1 inserido. Esse parâmetro é tomado como o ID do filme, que será usado para fisgar a informação da base de dados sobre o filme com ID = 1. Resultando então no usuário sendo capaz de ver o título e a review do primeiro filme da base de dados.
Então é isso! Nesse tutorial de CodeIgniter nós vimos o que ele é, como instalá-lo e configurá-lo, e também como construir uma aplicação simples usando este framework. Nós também descobrimos o MVC, o princípio guia por trás do CodeIgniter e porque é tão importante no desenvolvimento da web moderna.
Enquanto nossa aplicação teste se mostrou extremamente simples, com apenas um modelo, visão, controle e uma única query de base de dados, nós esperamos que tenha servido o propósito de iniciar o usuário para torná-lo familiar com o coração das funcionalidades do CodeIgniter.
Os leitores agora podem construir aplicações altamente dinâmicas, usando o CodeIgniter, mais rápido do que antes, utilizando a biblioteca e ajudantes. Nós esperamos que você tenha percebido o quão simples e poderoso é o CodeIgniter, e desejamos o melhor em sua jornada de desenvolvimento de web com esse framework PHP.
Olá! Tentei o tutorial, mas ao conectar ao SSH ele não tem o comando sudo, nem a pasta apache2, como consigo prosseguir?
Olá, Por favor, veja se você está seguindo a parte correta do tutorial, pois ele tem as configurações de Hospedagem de sites ou de VPS. No exemplo que você demonstrou, a utilização utilizada parece ser de VPS.
No model reviews_model.php creio que o nome da classe que extende CI_Model deve ser o mesmo nome do arquivo php com inicial maiúscula, ao invés de News_model seria Reviews_model.
Esse tutorial adiciona bancos de dados "separados" para cada usuário? poderia me passar esse código fonte também?