{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\"><\/p><p>\n\n\n<div class=\"protip\"><div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                   O Que &eacute; CodeIgniter?\n                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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><\/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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <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.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">O resultado ser&aacute; algo parecido com isso:<\/p><pre class=\"wp-block-preformatted\">\/home\/u123456789\/domains\/seudominio.com\/public_html <\/pre><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">A tela padr&atilde;o do CodeIgniter ser&aacute; exibida, indicando que a instala&ccedil;&atilde;o foi bem-sucedida.<\/p><p class=\"wp-block-paragraph\"><strong>Instalar o CodeIgniter 4 manualmente<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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\/w=300,h=300,fit=scale-down\" 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>\n<\/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 class=\"wp-block-paragraph\">Certifique-se de substituir <strong>seudominio.com <\/strong>pelo seu nome de dom&iacute;nio.&nbsp;&nbsp;<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Em vez de:<\/p><pre class=\"wp-block-preformatted\">https:\/\/seudominio.com\/public<\/pre><p class=\"wp-block-paragraph\">Depois disso, prossiga com a configura&ccedil;&atilde;o avan&ccedil;ada.<\/p><p class=\"wp-block-paragraph\"><strong>Configurar CodeIgniter em Hospedagem de Sites<\/strong><\/p><p class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Salve o arquivo e saia. Seu novo banco de dados agora est&aacute; sincronizado com o CodeIgniter.<\/p><p class=\"wp-block-paragraph\"><strong>Configura&ccedil;&atilde;o de Hosts Virtuais no VPS<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Importante!<\/strong> Certifique-se de que seu VPS esteja usando o Apache e n&atilde;o o Nginx ou qualquer outro servidor.\n            <\/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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Localize a seguinte linha:<\/p><pre class=\"wp-block-preformatted\">public $indexPage = 'index.php';<\/pre><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">&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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Conhe&ccedil;a Mais Dicas Sobre PHP                <\/p>\n            <\/div>\n            <p class=\"protip__content\"><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\n<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusao\">Conclus&atilde;o<\/h2><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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":1},{"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-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/codeigniter-tutorial\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/codeigniter-tutorial\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/codeigniter-tutorial\/","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},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/tutorial-codeigniter\/","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}]}}