Este tópico é também bem simples, vamos então tratar das configurações da nossa aplicação:
Note que algumas partes deste tópico foram já desenvolvidas num outro tutorial, contudo, achei por bem, ainda assim, criar um tópico dedicado a isto. Notem porém que, porque já há um tutorial bem detalhado sobre o .htaccess e a remoção do index.php e, ainda por cima, feito por alguém bem mais capaz do que eu, resolvi colocar mais código e menos comentário nesse tópico. Vamos a isso?
.htaccess:
O ficheiro .htaccess conterá o seguinte: (notem os comentários no .htaccess (que começam pelo cardinal).
- #Para não permitir o acesso ao ficheiro .htaccess vamos colocá-lo com permissões:644. E, adicionar o seguinte:
- <Files .htaccess>
- order allow,deny
- deny from all
- </Files>
- #Nao permitir o Directory Listing:
- Options -Indexes
- #Remove o índex.php do URL - url friendly:
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^(.+)$ index.php?$1 [L]
- #Nao permitir hotlinking:
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.com/.*$ [NC]
- RewriteRule \.(gif|jpg|js|css|png|jpeg|swf)$ - [F,NC,L]
- </IfModule>
application/config/config.php:
- $config['base_url'] = "http://mysite.com/";
- $config['index_page'] = ‘’;
em application/config/routes.php:
- /*
- * o nome do ficheiro controller que vai ser activo quando se escreve:
- * <a href="http://www.meusite.com" title="http://www.meusite.com">http://www.meusite.com</a> :
- *
- */
- $route['default_controller'] = 'c_homepage';
em application/config/autoload.php, vamos colocar libraries e helpers do CI que iremos usar com frequencia ao longo do site:
Coloque-as de acordo com as necessidades do seu projecto, para não estar a ocupar recursos desnecessariamente:
Não se esqueça que mudamos a localização das pastas para uma pasta private no tutorial anterior. Ora, temos de editar o nosso index.php da seguinte forma(pelo user guide do CI, sabemos que temos de usar um fullpath)
- $system_folder = "/home/mysite/private/system";
- $application_folder = "/home/mysite/private/application";
application/config/database.php
Finalmente, veja configure o ficheiro database.php. (Note a mudança no uft8)
- $active_group = "default";
- $active_record = TRUE;
- $db['default']['hostname'] = "localhost:/tmp/mysql.sock";
- $db['default']['username'] = "myusername";
- $db['default']['password'] = "mypassword";
- $db['default']['database'] = "mydatabase";
- $db['default']['dbdriver'] = "mysql";
- $db['default']['dbprefix'] = "";
- $db['default']['pconnect'] = TRUE;
- $db['default']['db_debug'] = TRUE;
- $db['default']['cache_on'] = FALSE;
- $db['default']['cachedir'] = "";
- $db['default']['char_set'] = "utf8";
- $db['default']['dbcollat'] = "utf8_unicode_ci"; //unicode em vez de general
Este foi bem rápido e leve. Contudo, procurei ser correcto nos nomes e usar alguns nomes em inglês para que, caso algum conceito não seja claro para si, possa recorrer a um motor de pesquisa, e encontrar o(s) seu(s) significados. (ie. hotlinking, libraries, helpers...).
Bem, o interessante está ainda para vir. :-)
No próximo tutorial, vamos falar da estrutura das Views. Como o tópico é bem grande, iremos dividi-lo em episódios.
Até ao próximo tutorial: O nascimento de um site com Codeigniter - Estrutura e Preparação do Site - Parte III - Episódio 1 de 3
ps- vou escrevendo conforme vou tendo tempo, uns tutoriais podem seguir seguidos, outros podem levar semanas de intervalo. :( Depende do trabalho aqui deste lado ok?
Abraço,
Márcio


Oi márcio, antes de mais nada
Oi márcio, antes de mais nada gostaria de parabeniza-lo pelos post... muito interessante, tou ansioso pra testar. Só queria se fosse possível vc me explicasse essa parte "application/config/routes.php:"
"
$route['default_controller'] = 'c_homepage';
"
Mais especificamente esse comando. eu deixo do jeito que tá mesmo?!
abraço
Olá Vitor, Lamento o tempo de
Olá Vitor,
Lamento o tempo de resposta, eu não sou informado quando os comentários são postos, então, só quando vou visitando os artigos é que vou vendo se tem comentário ou não. :)
Bem, a ideia do $route['default_controller'] é a seguinte:
Quando o utilizador digita o endereço do site no browser, qual será o controlador a ser chamado? Essa é a pergunta que ele faz, e que você poderá responder.
Portanto, respondendo à sua pergunta: é como você quiser.
O utilizador escreve no browser:
http://www.oseusite.com
Note que, neste endereço, nenhum controlador foi chamado. (os controladores são chamados no segundo segmento do URI) - e aqui não há nenhum segundo segmento. Então, a questão é: quando nenhum controlador é explicitamente chamado, qual deverá ser o controlador (porque tem sempre que ter um) que será activado? Eu escolhi um chamado 'c_homepage', você, poderá colocar aquele que desejar que apareça, quando alguém faz: http://www.seusite.com , por exemplo 'c_produtos'... 'c_destaques'.... enfim, livre escolha. :)
Em relação ao testar, vitor... infelizmente eu acho que vai dar buraco se você usar o código que vou postando aqui... O acho que o código não estará errado, mas, as relações entre as várias partes do código sim. Então, o que eu aconselho, a si e a todos os outros, é que, vejam este código, não como um manual, mas como uma partilha de experiencia onde, a partir dela, vocês poderão contruír os seus próprios projectos.
Sempre newbie,
Márcio