{"id":6066,"date":"2017-05-31T10:27:00","date_gmt":"2017-05-31T13:27:00","guid":{"rendered":"https:\/\/blog.hostinger.io\/br-tutoriais\/?p=6066"},"modified":"2025-04-09T04:57:13","modified_gmt":"2025-04-09T07:57:13","slug":"tutorial-codeigniter","status":"publish","type":"post","link":"\/br\/tutoriais\/tutorial-codeigniter","title":{"rendered":"Tutorial CodeIgniter: aprenda a instalar e como usar"},"content":{"rendered":"<p>O desenvolvimento de sites pode parecer uma tarefa desafiadora, especialmente se for feita sem nenhuma assist&ecirc;ncia. Felizmente, existem ferramentas de desenvolvimento como o CodeIgniter. Trata-se de um framework PHP mantido pelo British Columbia Institute of Technology com um kit de ferramentas simples, por&eacute;m eficazes, para o desenvolvimento de aplicativos da Web.<\/p><p>Neste tutorial do CodeIgniter, passaremos pelo processo de instala&ccedil;&atilde;o e configura&ccedil;&atilde;o do framework em m&uacute;ltiplas op&ccedil;&otilde;es de servidor para site, incluindo hospedagem compartilhada e VPS. Tamb&eacute;m demonstraremos como criar um aplicativo da Web simples usando a tecnologia.<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-BR.pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/public\" alt=\"\" class=\"wp-image-30339\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>\n\n\n\n\n\n\n<\/p><p><\/p><p>\n\n\n<div class=\"protip\">\n                    <h2 class=\"featured-snippet title\">O Que &eacute; CodeIgniter?<\/h2>\n                    <p>CodeIgniter &eacute; um framework de desenvolvimento de aplicativos web em PHP que simplifica o processo de cria&ccedil;&atilde;o de sites e aplicativos. Ele oferece recursos &uacute;teis e uma estrutura organizada para os desenvolvedores, permitindo que eles criem aplicativos mais rapidamente e com menos c&oacute;digo. Al&eacute;m disso, o CodeIgniter &eacute; f&aacute;cil de aprender e usar, mesmo para aqueles que n&atilde;o t&ecirc;m muita experi&ecirc;ncia em programa&ccedil;&atilde;o web.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-como-configurar-codeigniter-no-seu-site\">Como Configurar CodeIgniter no Seu Site<\/h2><p>Antes de come&ccedil;armos, lembre-se de que o CodeIgniter requer um stack de Linux, Apache, MySQL e PHP (LAMP). Felizmente, esse stack j&aacute; vem pr&eacute;-instalado na hospedagem compartilhada e na <a href=\"\/br\/hospedagem-php\">hospedagem PHP<\/a> da Hostinger.&nbsp;<\/p><p>Por outro lado, se voc&ecirc; tiver um <a href=\"\/br\/servidor-vps\">plano VPS<\/a>, precisar&aacute; instalar o stack LAMP primeiro. Confira nosso tutorial de como <a href=\"\/br\/tutoriais\/como-instalar-linux-apache-mysql-php-lamp\">instalar o LAMP no Ubuntu ou no CentOS<\/a>. Quando terminar, prossiga com a configura&ccedil;&atilde;o do CodeIgniter.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h3 class=\"wp-block-heading\" id=\"h-etapa-1-instalacao-do-codeigniter\">Etapa 1: Instala&ccedil;&atilde;o do CodeIgniter<\/h3><p>O CodeIgniter pode ser instalado automaticamente, pelo Composer, ou manualmente, pelo nosso <a href=\"\/br\/tutoriais\/como-utilizar-o-gerenciador-de-arquivos-hostinger\">Gerenciador de Arquivos<\/a>. Abaixo, cobriremos ambas as op&ccedil;&otilde;es.<\/p><p>\n\n\n<div><p class=\"important\"><strong>Importante!<\/strong> Para o m&eacute;todo do Composer, voc&ecirc; precisar&aacute; de acesso ao SSH. Use o <a href=\"\/br\/tutoriais\/como-se-conectar-servidor-vps-usando-terminal-ssh\">PuTTY<\/a> \/ Powershell no Windows ou o terminal nativo do Linux ou macOS.<\/p><\/div>\n\n\n\n<\/p><p><strong>Instalar o CodeIgniter 4 Usando o Composer<\/strong><\/p><ol class=\"wp-block-list\">\n<li>Fa&ccedil;a login na sua conta SSH e navegue at&eacute; o diret&oacute;rio raiz <strong>public_html <\/strong>com este comando:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">cd domains\/seudominio.com\/public_html<\/pre><ol class=\"wp-block-list\" start=\"2\">\n<li>Instale o CodeIgniter 4.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">composer create-project codeigniter4\/appstarter project-root <\/pre><p>O comando acima criar&aacute; o diret&oacute;rio <strong>project-root <\/strong>para os arquivos do CodeIgniter. Neste tutorial, estamos usando a vers&atilde;o <strong>4.1.9<\/strong> do CodeIgniter. Voc&ecirc; pode usar o comando abaixo no diret&oacute;rio do CodeIgniter para atualiz&aacute;-lo:<\/p><pre class=\"wp-block-preformatted\">composer update<\/pre><ol class=\"wp-block-list\" start=\"3\">\n<li>Por conveni&ecirc;ncia, recomendamos mover o conte&uacute;do do <strong>project-root <\/strong>para o diret&oacute;rio <strong>public_html<\/strong>. Primeiro, determine o diret&oacute;rio atual com este comando:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">pwd<\/pre><p>O resultado ser&aacute; algo parecido com isso:<\/p><pre class=\"wp-block-preformatted\">\/home\/u123456789\/domains\/seudominio.com\/public_html <\/pre><p>Agora mova os arquivos:<\/p><pre class=\"wp-block-preformatted\">mv project-root\/* \/home\/u123456789\/domains\/seudominio.com\/public_html <\/pre><ol class=\"wp-block-list\" start=\"4\">\n<li>Feito isso, digite esse URL no navegador:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">https:\/\/seudominio.com\/public<\/pre><p>Lembre-se de substituir <strong>seudominio.com <\/strong>pelo seu dom&iacute;nio em todas as etapas acima. Caso voc&ecirc; ainda n&atilde;o tenha um, confira nossas op&ccedil;&otilde;es de <a href=\"\/br\/registro-de-dominio\">dom&iacute;nio para site<\/a>.<\/p><p>A tela padr&atilde;o do CodeIgniter ser&aacute; exibida, indicando que a instala&ccedil;&atilde;o foi bem-sucedida.<\/p><p><strong>Instalar o CodeIgniter 4 manualmente<\/strong><\/p><p>Se voc&ecirc; quiser evitar a parte do SSH necess&aacute;ria para o Composer, &eacute; poss&iacute;vel fazer a instala&ccedil;&atilde;o manual do CodeIgniter usando o Gerenciador de Arquivos da Hostinger.<\/p><p>Lembre-se de que, embora o m&eacute;todo manual seja simples, voc&ecirc; precisar&aacute; verificar se h&aacute; conflitos ao atualizar seu site. Siga estas etapas para executar a instala&ccedil;&atilde;o manual:<\/p><ol class=\"wp-block-list\">\n<li>Fa&ccedil;a o download da <a href=\"https:\/\/github.com\/CodeIgniter4\/framework\/releases\/tag\/v4.1.6\" target=\"_blank\" rel=\"noopener\">vers&atilde;o mais recente do CodeIgniter<\/a>.<\/li>\n\n\n\n<li>Usando o Gerenciador de arquivos, extraia-o no diret&oacute;rio raiz do seu site &ndash; <strong>seudominio.com\/public_html<\/strong>.<\/li>\n\n\n\n<li>A pasta <strong>framework-4.1.9 <\/strong>ser&aacute; exibida. Abra-a e clique duas vezes na pasta contida l&aacute; dentro. Voc&ecirc; dever&aacute; ver uma janela como esta:<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"623\" height=\"461\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-6.png\/public\" alt=\"instalando codeigniter pelo gerenciador de arquivos\" class=\"wp-image-36136\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-6.png\/w=623,fit=scale-down 623w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-6.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-6.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/><\/figure><\/div><p>Pressione <strong>CTRL + A <\/strong>para selecionar todos os arquivos e use o bot&atilde;o <strong>Mover <\/strong>para transferir tudo para o diret&oacute;rio <strong>public_html:&nbsp;<\/strong><\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"624\" height=\"516\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-7.png\/public\" alt=\"instalando codeigniter pelo gerenciador de arquivos\" class=\"wp-image-36137\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-7.png\/w=624,fit=scale-down 624w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-7.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-7.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure><\/div><p>O caminho ter&aacute; a seguinte apar&ecirc;ncia:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><img decoding=\"async\" width=\"836\" height=\"752\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-10.png\/public\" alt=\"instalando codeigniter pelo gerenciador de arquivos\" class=\"wp-image-36138\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-10.png\/w=836,fit=scale-down 836w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-10.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-10.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-10.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 836px) 100vw, 836px\" \/><\/figure><\/div><ol class=\"wp-block-list\" start=\"4\">\n<li>Abra o navegador e digite este URL:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">https:\/\/seudominio.com\/public<\/pre><p>Certifique-se de substituir <strong>seudominio.com <\/strong>pelo seu nome de dom&iacute;nio.&nbsp;&nbsp;<\/p><p>A tela padr&atilde;o do CodeIgniter ser&aacute; exibida, o que significa que a instala&ccedil;&atilde;o foi bem-sucedida.<\/p><h3 class=\"wp-block-heading\" id=\"h-etapa-2-configuracao-do-codeigniter\">Etapa 2: Configura&ccedil;&atilde;o do CodeIgniter<\/h3><p>Depois de instalar o CodeIgniter, &eacute; fundamental configur&aacute;-lo para que ele funcione corretamente. Recomendamos come&ccedil;ar <a href=\"\/br\/tutoriais\/como-localizar-ou-criar-um-arquivo-htaccess\">criando um arquivo <strong>.htaccess<\/strong><\/a> e colando este snippet nele:<\/p><pre class=\"wp-block-preformatted\">RewriteEngine on\nRewriteCond %{REQUEST_URI} !^public\nRewriteRule ^(.*)$ public\/$1 [L]<\/pre><p>Essas regras do <strong>.htaccess<\/strong> far&atilde;o com que a URL do site do CodeIgniter fique da seguinte forma:<\/p><pre class=\"wp-block-preformatted\">https:\/\/seudominio.com <\/pre><p>Em vez de:<\/p><pre class=\"wp-block-preformatted\">https:\/\/seudominio.com\/public<\/pre><p>Depois disso, prossiga com a configura&ccedil;&atilde;o avan&ccedil;ada.<\/p><p><strong>Configurar CodeIgniter em Hospedagem de Sites<\/strong><\/p><p>Nesta se&ccedil;&atilde;o, veremos como fazer as configura&ccedil;&otilde;es avan&ccedil;adas do CodeIgniter nos planos de hospedagem de sites da Hostinger. Vamos come&ccedil;ar criando um novo banco de dados MySQL.<\/p><ol class=\"wp-block-list\">\n<li>Localize a se&ccedil;&atilde;o <strong>Hospedagem <\/strong>-&gt; <strong>Gerenciar <\/strong>-&gt; <strong>Bancos de Dados MySQL <\/strong>no <a href=\"\/br\/tutoriais\/hpanel\">hPanel<\/a> da Hostinger:<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"646\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-11.png\/public\" alt=\"bancos de dados na se&ccedil;&atilde;o de hospedagem do hpanel\" class=\"wp-image-36139\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-11.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-11.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-11.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-11.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><ol class=\"wp-block-list\" start=\"2\">\n<li>Em seguida, digite o nome do banco de dados, o nome de usu&aacute;rio e a senha. Clique em <strong>Criar<\/strong>.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"402\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-13.png\/public\" alt=\"criando novo banco de dados na se&ccedil;&atilde;o de hospedagem do hpanel\" class=\"wp-image-36140\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-13.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-13.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-13.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-13.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><ol class=\"wp-block-list\" start=\"3\">\n<li>Navegue at&eacute; o <strong>Gerenciador de arquivos <\/strong>e abra o arquivo <strong>Database.php <\/strong>para edit&aacute;-lo. Aqui est&aacute; o caminho para encontrar o arquivo:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">\/domains\/seudominio.com\/public_html\/app\/Config\/Database.php<\/pre><ol class=\"wp-block-list\" start=\"4\">\n<li>Localize a se&ccedil;&atilde;o a seguir do arquivo e substitua os detalhes pelas informa&ccedil;&otilde;es do banco de dados rec&eacute;m-criado: <strong>nome de usu&aacute;rio<\/strong>, <strong>senha <\/strong>e <strong>banco de dados<\/strong>. O restante dos valores deve seguir este exemplo:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">public $default = [\n'DSN'      =&gt; '',\n'hostname' =&gt; 'localhost',\n'username' =&gt; 'u123456789_user',\n'password' =&gt; 'Y0ur$tr0ngPa$$w0rd',\n'database' =&gt; 'u123456789_name',\n'DBDriver' =&gt; 'MySQLi',\n'DBPrefix' =&gt; '',\n'pConnect' =&gt; false,\n'DBDebug'  =&gt; (ENVIRONMENT !== 'production'),\n'charset'  =&gt; 'utf8',\n'DBCollat' =&gt; 'utf8_general_ci',\n'swapPre'  =&gt; '',\n'encrypt'  =&gt; false,\n'compress' =&gt; false,\n'strictOn' =&gt; false,\n'failover' =&gt; [],\n'port'     =&gt; 3306,\n];<\/pre><p>Salve o arquivo.<\/p><ol class=\"wp-block-list\" start=\"5\">\n<li>Configure seu dom&iacute;nio modificando o arquivo <strong>App.php <\/strong>do CodeIgniter, encontrado aqui:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">\/domains\/seudominio.com\/public_html\/app\/Config\/App.php<\/pre><ol class=\"wp-block-list\" start=\"6\">\n<li>Localize a linha a seguir e altere seu valor para seu nome de dom&iacute;nio real:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">public $baseURL = 'https:\/\/seudominio.com\/'; <\/pre><p>Salve o arquivo e saia. Seu novo banco de dados agora est&aacute; sincronizado com o CodeIgniter.<\/p><p><strong>Configura&ccedil;&atilde;o de Hosts Virtuais no VPS<\/strong><\/p><p>Os usu&aacute;rios de VPS podem executar v&aacute;rios aplicativos CodeIgniter em um &uacute;nico dom&iacute;nio. Para isso, eles precisam configurar hosts virtuais.&nbsp;<\/p><p>\n\n\n<div><p class=\"important\"><strong>Importante!<\/strong> Certifique-se de que seu VPS esteja usando o Apache e n&atilde;o o Nginx ou qualquer outro servidor.<\/p><\/div>\n\n\n\n<\/p><ol class=\"wp-block-list\">\n<li>Certifique-se de que a raiz do documento esteja sincronizada com o diret&oacute;rio de instala&ccedil;&atilde;o do CodeIgniter. Para fazer isso, abra o arquivo de host virtual.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo nano \/etc\/apache2\/sites-enabled\/000-default<\/pre><ol class=\"wp-block-list\" start=\"2\">\n<li>Procure o bloco a seguir:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">&lt;VirtualHost *:80&gt; <br>DocumentRoot \/path\/to\/codeigniter <br>[.......] <br>&lt;VirtualHost *:80&gt;&lt;br&gt;<\/pre><ol class=\"wp-block-list\" start=\"3\">\n<li>Altere <strong>\/path\/to\/codeigniter <\/strong>para o caminho real do diret&oacute;rio de instala&ccedil;&atilde;o do CodeIgniter. Ao fazer isso, todos os URLs apontar&atilde;o para essa pasta. Salve as altera&ccedil;&otilde;es pressionando <strong>CTRL + X <\/strong>e <strong>Y<\/strong>.<\/li>\n<\/ol><p>Para um processo de desenvolvimento mais eficiente, elimine o <strong>index.php <\/strong>do formato de URL do CodeIgniter. Veja como fazer isso:<\/p><ol class=\"wp-block-list\">\n<li>Abra o arquivo <strong>config.php<\/strong>.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">nano \/public_html\/app\/Config\/App.php<\/pre><p>Localize a seguinte linha:<\/p><pre class=\"wp-block-preformatted\">public $indexPage = 'index.php';<\/pre><p>Substitua-o pelo c&oacute;digo abaixo:<\/p><pre class=\"wp-block-preformatted\">public $indexPage = '';<\/pre><ol class=\"wp-block-list\" start=\"2\">\n<li>&Eacute; necess&aacute;rio redirecionar solicita&ccedil;&otilde;es futuras modificando o arquivo <strong>.htaccess <\/strong>para garantir que nenhum erro seja exibido. Antes de fazer isso, verifique se <strong>o mod_rewrite <\/strong>est&aacute; ativado.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">apache2ctl -M<\/pre><p>O comando acima mostrar&aacute; os recursos do servidor. Se <strong>o mod_rewrite <\/strong>estiver na lista, passe para a pr&oacute;xima etapa. Caso contr&aacute;rio, execute esta linha:<\/p><pre class=\"wp-block-preformatted\">a2enmod rewrite<\/pre><p>Em seguida, reinicie o Apache.<\/p><pre class=\"wp-block-preformatted\">sudo service apache2 restart <\/pre><ol class=\"wp-block-list\" start=\"3\">\n<li>Crie um arquivo <strong>.htaccess <\/strong>na pasta raiz do CodeIgniter.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">nano public_html\/.htaccess<\/pre><ol class=\"wp-block-list\" start=\"4\">\n<li>Cole as seguintes linhas no arquivo. Se<strong> <\/strong>o arquivo <strong>.htaccess <\/strong>j&aacute; tiver sido criado durante a primeira parte de configura&ccedil;&atilde;o do tutorial, adicione todas as linhas abaixo, exceto a primeira. Salve as altera&ccedil;&otilde;es e saia do arquivo.<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">RewriteEngine on\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule .* index.php?\/$0 [PT,L]&lt;br&gt;\n<\/pre><ol class=\"wp-block-list\" start=\"5\">\n<li>Informe ao Apache que ele deve procurar o arquivo <strong>.htaccess <\/strong>rec&eacute;m-criado. Para isso, abra novamente o arquivo de host virtual:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo nano \/etc\/apache2\/sites-enabled\/000-default<\/pre><p>Certifique-se de que <strong>AllowOverride <\/strong>esteja definido como <strong>All<\/strong>, conforme mostrado abaixo:<\/p><pre class=\"wp-block-preformatted\">&lt;Directory&gt;\nOptions Indexes FollowSymLinks MultiViews\nAllowOverride All\nOrder allow,deny\nallow from all\n&lt;\/Directory&gt;\n<\/pre><p>Depois de confirmar, salve o arquivo. Se esses passos forem corretamente, o <strong>index.php n&atilde;o <\/strong>aparecer&aacute; no seu endere&ccedil;o web, tornando a URL mais limpa.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/public\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-entendendo-o-mvc\">Entendendo o MVC<\/h2><p>Antes de continuar nosso tutorial do CodeIgniter e aprender a criar um aplicativo com o framework, devemos abordar os conceitos b&aacute;sicos do padr&atilde;o modelo-vis&atilde;o-controlador (MVC).<\/p><p>Em termos simples, o MVC &eacute; um paradigma de arquitetura de desenvolvimento Web. Ele postula que a <a href=\"https:\/\/pt.wikipedia.org\/wiki\/L%C3%B3gica_de_neg%C3%B3cio\" target=\"_blank\" rel=\"noopener\">l&oacute;gica de neg&oacute;cio<\/a> de qualquer aplicativo deve ser separada da apresenta&ccedil;&atilde;o. Desta forma, o padr&atilde;o separa as tr&ecirc;s camadas do projeto de desenvolvimento da seguinte maneira:<\/p><ul class=\"wp-block-list\">\n<li><strong>Modelo <\/strong>&ndash; lida com o banco de dados, executa c&aacute;lculos e muito mais. Em resumo, &eacute; onde est&aacute; localizada sua l&oacute;gica de neg&oacute;cio.<\/li>\n\n\n\n<li><strong>Vis&atilde;o &ndash; <\/strong>forma a camada de apresenta&ccedil;&atilde;o do aplicativo, na qual os dados dos modelos s&atilde;o incorporados.<\/li>\n\n\n\n<li><strong>Controlador <\/strong>&ndash; encaminhar&aacute; as solicita&ccedil;&otilde;es do usu&aacute;rio para o <strong>modelo <\/strong>apropriado<strong>. <\/strong>Depois que o modelo tiver feito seu trabalho, o controlador carregar&aacute; a <strong>visualiza&ccedil;&atilde;o <\/strong>relevante.<\/li>\n<\/ul><p>Esse padr&atilde;o arquitet&ocirc;nico tamb&eacute;m oferece aos desenvolvedores a flexibilidade de reutilizar o c&oacute;digo para v&aacute;rias visualiza&ccedil;&otilde;es. Por exemplo, ele permitir&aacute; que voc&ecirc; implemente a mesma barra de navega&ccedil;&atilde;o em todas as p&aacute;ginas do seu aplicativo. Al&eacute;m disso, como <strong>as vis&otilde;es  <\/strong>e <strong>os modelos <\/strong>s&atilde;o totalmente separados, os desenvolvedores de front-end podem trabalhar em paralelo com a equipe de back-end para acelerar o processo de desenvolvimento.<\/p><p>Observe que o CodeIgniter tamb&eacute;m adota o paradigma de <strong>programa&ccedil;&atilde;o orientada a objetos <\/strong>(OOP). Dessa forma, <strong>modelos <\/strong>e <strong>controladores <\/strong>s&atilde;o classes PHP que estendem as classes b&aacute;sicas fornecidas pela estrutura. As <strong>vis&otilde;es <\/strong>tamb&eacute;m podem ser chamadas de arquivos PHP, embora a maior parte de seu conte&uacute;do seja <strong>HTML\/CSS<\/strong>. Apenas alguns trechos do c&oacute;digo PHP principal est&atilde;o presentes e s&atilde;o usados para exibir os dados dos modelos.<\/p><h3 class=\"wp-block-heading\" id=\"h-nocoes-basicas-de-roteamento\">No&ccedil;&otilde;es B&aacute;sicas de Roteamento<\/h3><p>&Eacute; assim que o CodeIgniter formata suas strings de URL:<\/p><pre class=\"wp-block-preformatted\">&lt;base_url&gt;\/index.php\/&lt;controller_name&gt;\/&lt;controller_function&gt;\/&lt;function_parameter_1&gt;\/&gt;\/&lt;function_parameter_2&gt;&hellip;<\/pre><p>Mostramos como remover <strong>index.php <\/strong>do formato na se&ccedil;&atilde;o anterior. Como resultado, seu URL ser&aacute; semelhante a este exemplo:<\/p><pre class=\"wp-block-preformatted\">http:\/\/www.seudominio.com\/welcome\/tester\/1<\/pre><p>Aqui, <strong>welcome <\/strong>&eacute; uma classe de controlador correspondente a um arquivo de controlador chamado <strong>welcome.php<\/strong>. Essa classe chamar&aacute; a fun&ccedil;&atilde;o <strong>tester() <\/strong>e passar&aacute; &lsquo;<strong>1<\/strong>&lsquo; como par&acirc;metro. Outros par&acirc;metros podem ser fornecidos de forma semelhante, separados por barras.<\/p><h3 class=\"wp-block-heading\" id=\"h-bibliotecas\">Bibliotecas<\/h3><p>O CodeIgniter incentiva a reutiliza&ccedil;&atilde;o de bibliotecas existentes e fun&ccedil;&otilde;es auxiliares para realizar tarefas comuns. O framework tamb&eacute;m permite que os usu&aacute;rios escolham qual biblioteca carregar e quando. Esse processo sob demanda resulta em aplicativos r&aacute;pidos, leves e repletos de recursos.<\/p><p>Carregar uma biblioteca no CodeIgniter &eacute; muito f&aacute;cil. Por exemplo, para carregar a biblioteca <strong>Database<\/strong>, passe a seguinte linha em seu modelo ou controlador:<\/p><pre class=\"wp-block-preformatted\">$this-&gt;load-&gt;database();<\/pre><p>N&oacute;s sugerimos o carregamento autom&aacute;tico de bibliotecas comuns, para que elas estejam prontas sempre que necess&aacute;rio. O CodeIgniter usa <a href=\"https:\/\/codeigniter.com\/user_guide\/concepts\/autoloader.html#namespaces\" target=\"_blank\" rel=\"noopener\">o padr&atilde;o PSR-4<\/a>, o que facilita o carregamento autom&aacute;tico &mdash; que pode ser configurado da seguinte forma:<\/p><ol class=\"wp-block-list\">\n<li>Abra o arquivo de carregamento autom&aacute;tico:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">nano app\/Config\/Autoload.php<\/pre><ol class=\"wp-block-list\" start=\"2\">\n<li>Adicione as bibliotecas &agrave; matriz <strong>psr4<\/strong>:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">$psr4 = [\n'App'         =&gt; APPPATH,\n'CodeIgniter' =&gt; SYSTEMPATH,\n];<\/pre><p>Pressione <strong>CTRL + X <\/strong>para salvar o arquivo e <strong>Y <\/strong>para confirmar as altera&ccedil;&otilde;es.<\/p><h2 class=\"wp-block-heading\" id=\"h-criando-um-aplicativo-simples-com-o-codeigniter\">Criando um Aplicativo Simples Com o CodeIgniter<\/h2><p>A este ponto do nosso tutorial, voc&ecirc; j&aacute; deve ter uma distribui&ccedil;&atilde;o do CodeIgniter em execu&ccedil;&atilde;o e um entendimento de como funcionam <strong>os modelos<\/strong>, as <strong>vis&otilde;es <\/strong>e <strong>os controladores<\/strong>. Agora, vamos criar um aplicativo web simples baseado no framework.<\/p><p>Usaremos o <strong>modelo <\/strong>para buscar nomes de ag&ecirc;ncias em nosso banco de dados, classific&aacute;-los e exibi-los usando nossa <strong>visualiza&ccedil;&atilde;o<\/strong> (vis&atilde;o). O <strong>controlador <\/strong>ser&aacute; usado para rotear as solicita&ccedil;&otilde;es entre o <strong>modelo <\/strong>e a <strong>visualiza&ccedil;&atilde;o<\/strong>.<\/p><p>Depois de ter um conhecimento b&aacute;sico sobre os processos fundamentais do CodeIgniter, voc&ecirc; poder&aacute; come&ccedil;ar a criar aplicativos web mais complexos.<\/p><h3 class=\"wp-block-heading\" id=\"h-etapa-1-criando-uma-tabela-no-phpmyadmin\">Etapa 1: Criando uma Tabela no phpMyAdmin<\/h3><p>Esta se&ccedil;&atilde;o abordar&aacute; as etapas para criar uma tabela no phpMyAdmin via hPanel. Essa tabela &eacute; essencial porque formar&aacute; a base do nosso aplicativo.&nbsp;<\/p><ol class=\"wp-block-list\">\n<li>Fa&ccedil;a login na sua conta de hospedagem. Navegue at&eacute; a se&ccedil;&atilde;o <strong>Bancos de Dados <\/strong>e selecione <strong>phpMyAdmin<\/strong>.<\/li>\n\n\n\n<li>Procure o banco de dados que voc&ecirc; sincronizou com o CodeIgniter e clique em <strong>Entrar no phpMyAdmin<\/strong>:<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-15.png\/public\" alt=\"acessando phpmyadmin pelo hpanel\" class=\"wp-image-36141\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-15.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-15.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-15.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/tutorial-codeigniter-15.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><ol class=\"wp-block-list\" start=\"3\">\n<li>Ao acessar o phpMyAdmin, selecione a aba <strong>SQL<\/strong>, cole a query abaixo e pressione <strong>Executar<\/strong>:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">CREATE TABLE agencies (\n    id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',\n    name varchar(100) NOT NULL COMMENT 'Name',\n    email varchar(255) NOT NULL COMMENT 'Email Address',\n    PRIMARY KEY (id)\n  ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT=''AUTO_INCREMENT=1;\n  \n    INSERT INTO agencies(id, name, email) VALUES\n  (1, 'Development', 'awesomeinbox@domain.com'),\n  (2, 'Production', 'sparkingjoy@domain.net'),\n  (3, 'Testing', 'user@mydomain.com'),\n  (4, 'Building', 'editor@mydomain.net'),\n  (5, 'Debugging', 'anotherawesomeinbox@anotherdomain.com');<\/pre><p>Ficar&aacute; da seguinte forma:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"712\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/mysql.png\/public\" alt=\"criando query no phpmyadmin para criar app codeigniter\" class=\"wp-image-36142\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/mysql.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/mysql.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/mysql.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2017\/05\/mysql.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><p>Essa query criar&aacute; automaticamente um banco de dados preenchido com os dados que poderemos usar posteriormente.<\/p><h3 class=\"wp-block-heading\" id=\"h-etapa-2-criando-o-modelo\">Etapa 2: Criando o Modelo<\/h3><p>Depois que a tabela do banco de dados estiver criada, comece a trabalhar na l&oacute;gica de neg&oacute;cio do aplicativo. Para isso, crie um <strong>modelo <\/strong>que recuperar&aacute; os valores do banco de dados.<\/p><ol class=\"wp-block-list\">\n<li>Acesse o <strong>Gerenciador de Arquivos.<\/strong><\/li>\n\n\n\n<li>Os modelos s&atilde;o colocados no diret&oacute;rio <strong>public_html\/app\/Models <\/strong>para que n&atilde;o interfiram na estrutura de diret&oacute;rios do aplicativo. V&aacute; para o diret&oacute;rio <strong>Models <\/strong>e crie um novo arquivo PHP chamado <strong>AgencyModel.php.<\/strong><\/li>\n\n\n\n<li>Cole o seguinte c&oacute;digo no arquivo <strong>AgencyModel.php<\/strong>:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">&lt;?php namespace App\\Models;\nuse CodeIgniter\\Database\\ConnectionInterface;\nuse CodeIgniter\\Model; \nclass AgencyModel extends Model\n{\n    protected $table = 'agencies';\n     protected $allowedFields = ['name', 'email'];\n}<\/pre><p>Como voc&ecirc; pode ver, a classe de modelo (<strong>AgencyModel<\/strong>) estende a classe <strong>Model <\/strong>gen&eacute;rica fornecida pelo CodeIgniter. Tenha em mente que o framework exige que todos os nomes de classes comecem com uma letra mai&uacute;scula.<\/p><h3 class=\"wp-block-heading\" id=\"h-etapa-3-criando-o-controlador\">Etapa 3: Criando o Controlador<\/h3><p>Em seguida, criaremos uma rota usando o <strong>controlador<\/strong>. Dessa forma, sempre que um usu&aacute;rio fizer uma solicita&ccedil;&atilde;o, a visualiza&ccedil;&atilde;o ser&aacute; abastecida com as informa&ccedil;&otilde;es do modelo.<\/p><ol class=\"wp-block-list\">\n<li>Para criar um novo controlador, v&aacute; para o diret&oacute;rio <strong>app\/Controllers <\/strong>e crie um arquivo chamado <strong>Agencies.php<\/strong>. Lembre-se de que os controladores do CodeIgniter devem ter o mesmo nome da classe que os cont&eacute;m.<\/li>\n\n\n\n<li>Cole o c&oacute;digo a seguir no arquivo:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">&lt;?php namespace App\\Controllers;\n \nuse CodeIgniter\\Controller;\nuse App\\Models\\AgencyModel;\n\nclass Agencies extends Controller\n{\n}<\/pre><ol class=\"wp-block-list\" start=\"3\">\n<li>N&oacute;s criaremos uma fun&ccedil;&atilde;o simples para classificar todas as entradas do banco de dados, da mais alta para a mais baixa. Para isso, adicione este snippet de c&oacute;digo ao arquivo:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">public function index()\n{    \n  $model = new AgencyModel(); \n  $data['agencies'] = $model-&gt;orderBy('id', 'DESC')-&gt;findAll();    return view('agencies', $data);\n}<\/pre><ol class=\"wp-block-list\" start=\"4\">\n<li>O c&oacute;digo completo ter&aacute; a seguinte apar&ecirc;ncia:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">&lt;?php namespace App\\Controllers;\nuse CodeIgniter\\Controller;\nuse App\\Models\\AgencyModel;\nclass Agencies extends Controller\n{\npublic function index()\n{    \n  $model = new AgencyModel(); \n  $data['agencies'] = $model-&gt;orderBy('id', 'DESC')-&gt;findAll();    return view('agencies', $data);\n}\n}<\/pre><h3 class=\"wp-block-heading\" id=\"h-etapa-4-criando-a-visualizacao\">Etapa 4: Criando a Visualiza&ccedil;&atilde;o<\/h3><p>Por fim, criaremos uma <strong>visualiza&ccedil;&atilde;o <\/strong>que mostrar&aacute; a lista de ag&ecirc;ncias.<\/p><ol class=\"wp-block-list\">\n<li>Entre na pasta <strong>app\/Views <\/strong>e crie um novo arquivo com o t&iacute;tulo <strong>agencies.php<\/strong>. O nome do arquivo deve corresponder &agrave; <strong>visualiza&ccedil;&atilde;o <\/strong>cujo carregamento voc&ecirc; solicitou ao controlador para carregar, apresentada na &uacute;ltima linha do m&eacute;todo <strong>view()<\/strong>.<\/li>\n\n\n\n<li>Cole o c&oacute;digo a seguir e salve o arquivo:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">&lt;!doctype html&gt;\n&lt;html lang=\"en\"&gt;\n  &lt;head&gt;\n  &lt;meta charset=\"utf-8\"&gt;\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;div class=\"row mt-3\"&gt;\n     &lt;table class=\"table table-bordered\" id=\"agencies\"&gt;       &lt;thead&gt;\n   &lt;tr&gt;\n             &lt;th&gt;Id&lt;\/th&gt;\n             &lt;th&gt;Name&lt;\/th&gt;\n             &lt;th&gt;Email&lt;\/th&gt;\n          &lt;\/tr&gt;\n       &lt;\/thead&gt;\n       &lt;tbody&gt;\n          &lt;?php if($agencies): ?&gt;\n          &lt;?php foreach($agencies as $agencies1): ?&gt;\n          &lt;tr&gt;\n             &lt;td&gt;&lt;?php echo $agencies1['id']; ?&gt;&lt;\/td&gt;\n             &lt;td&gt;&lt;?php echo $agencies1['name']; ?&gt;&lt;\/td&gt;\n             &lt;td&gt;&lt;?php echo $agencies1['email']; ?&gt;&lt;\/td&gt;\n          &lt;\/tr&gt;\n         &lt;?php endforeach; ?&gt;\n         &lt;?php endif; ?&gt;\n       &lt;\/tbody&gt;\n     &lt;\/table&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre><p>A <strong>visualiza&ccedil;&atilde;o <\/strong>exibir&aacute; as informa&ccedil;&otilde;es passadas pelo controlador na matriz <strong>$data<\/strong>. Os resultados n&atilde;o ser&atilde;o visualmente impressionantes, pois n&atilde;o adicionamos nenhum estilo &agrave; nossa visualiza&ccedil;&atilde;o. Entretanto, voc&ecirc; pode adicionar estilos inline ou, posteriormente, fazer refer&ecirc;ncia a uma folha de estilos CSS na <strong>visualiza&ccedil;&atilde;o<\/strong>.<\/p><p>Nosso aplicativo de amostra est&aacute; completo. Voc&ecirc; pode executar esse aplicativo digitando o seguinte URL no navegador:<\/p><pre class=\"wp-block-preformatted\">http:\/\/seudominio.com\/Agencies<\/pre><p>O aplicativo chamar&aacute; o <strong>controlador <\/strong>das ag&ecirc;ncias criado na <strong>etapa 3 <\/strong>e classificar&aacute; os elementos do banco de dados.<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Conhe&ccedil;a Mais Dicas Sobre PHP<\/h4>\n                    <p><a href=\"\/br\/tutoriais\/como-conectar-php-com-mysql\/\">Como Conectar PHP a um Banco de Dados MySQL<br><\/a><a href=\"\/br\/tutoriais\/como-inserir-dados-no-mysql-com-php\">Como Inserir Dados no MySQL com PHP<br><\/a><a href=\"\/br\/tutoriais\/como-enviar-emails-usando-php\">Tutorial: Enviando Emails Via PHP com PHPMailer<\/a><\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusao\">Conclus&atilde;o<\/h2><p>Aprender a criar uma aplica&ccedil;&atilde;o web &eacute; muito importante se voc&ecirc; deseja <a href=\"\/br\/tutoriais\/programador-freelance\">se tornar um desenvolvedor<\/a>. Felizmente, o CodeIgniter e sua arquitetura MVC tornam o processo de desenvolvimento r&aacute;pido, eficiente e f&aacute;cil para qualquer pessoa.<\/p><p>Neste artigo, discutimos os aspectos essenciais desse framework e falamos sobre o que torna o CodeIgniter simples, por&eacute;m eficaz ao mesmo tempo. Tamb&eacute;m mostramos como funciona o padr&atilde;o de desenvolvimento MVC e criamos um aplicativo simples.<\/p><p>Se tiver alguma observa&ccedil;&atilde;o ou pergunta, deixe-a na se&ccedil;&atilde;o de coment&aacute;rios abaixo. Boa sorte!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O desenvolvimento de sites pode parecer uma tarefa desafiadora, especialmente se for feita sem nenhuma assist&ecirc;ncia. Felizmente, existem ferramentas de desenvolvimento como o CodeIgniter. Trata-se de um framework PHP mantido pelo British Columbia Institute of Technology com um kit de ferramentas simples, por&eacute;m eficazes, para o desenvolvimento de aplicativos da Web. Neste tutorial do CodeIgniter, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/tutorial-codeigniter\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":74,"featured_media":42746,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Nesse tutorial voc\u00ea vai entender o que \u00e9 CodeIgniter, como instalar e configurar, e tamb\u00e9m como construir uma aplica\u00e7\u00e3o simples com ele.","rank_math_focus_keyword":"tutorial codeigniter","footnotes":""},"categories":[4916],"tags":[5068,5069,4966,4865,5070],"class_list":["post-6066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-codeigniter","tag-codeigniter-tutorial","tag-mvc","tag-php","tag-tutorial-codeigniter"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/codeigniter-tutorial","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/tutorial-codeigniter","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/codeigniter","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/tutorial-codeigniter-indonesia-lengkap","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/codeigniter-tutorial","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/codeigniter-tutorial","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/codeigniter-tutorial","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/tutorial-codeigniter","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/codeigniter-tutorial","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/codeigniter-tutorial","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/codeigniter-tutorial","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/codeigniter-tutorial","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/74"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=6066"}],"version-history":[{"count":22,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6066\/revisions"}],"predecessor-version":[{"id":42750,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/6066\/revisions\/42750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/42746"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=6066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=6066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=6066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}