Ol, hoje irei explicar como configurar (ao menos como eu uso) uma instalao bsica do Codeigniter pronta para desenvolver a sua aplicao.
Conhecimentos
Esse tutorial assume que voc j tem algum conhecimento sobre como funciona a estrutura MVC. Se voc no sabe o que ou como funciona, leia esse artigo antes de iniciar. Tambm j deve ter tido alguma experincia com o framework. Se voc sabe como funciona MVC mas nunca usou o Codeigniter, recomendo assistir essa vdeo-aula.
Feito isso seu Codeigniter j est pronto para continuarmos. Acesse no seu navegador: http://localhost/ci (ou troque ci pelo nome da pasta que voc renomeou) e ver a tela de boas vindas. A estrutura padro dos endereos : ../index.php/Controller/Mtodo/Parmetro. Onde .. a sua base_url (ver explicao logo acima). PS: irei usar .. para representar a base_url daqui pra frente.
3 Criando o Template
Ok, com o controller funcionando, criaremos finalmente o template da nossa aplicao. Como voc j deve ter visto, o comando para exibir as views :
$this->load->view('nome_da_view');
Isso no est errado, porm h uma forma mais simplificada de fazer isso, como veremos agora. Usando nosso controller site como base, vamos criar duas propriedades (ou atributos) na nossa classe:
class Site extends Controller { private $_tpl = 'themes/template1'; private $dados = array();
Criamos aqui a propriedade _tpl, que nada mais do que a localizao da view do template (criei um diretorio para colocar s os temas). Se voc criar outro template, basta alterar aqui. A segunda propriedade $dados, um array em que ser passado dados para exibir nossa view, como o ttulo da pgina e a view que ser carregada no template. Vou alterar a funo index como exemplo:
function index() { $this->dados['titulo'] = 'Ol, seja bem vindo !';
Aqui carreguei a view themes/template1, e passei para ela todos os dados de $dados, agora veremos como ficar nossa view application/views/themes/template1.php Percebam que criei um layout bem bsico, na tag title, est mandando imprimir a varivel $titulo, vinda do controller atravs do array $dados (note que o array no passado, tudo que vem dentro dele se torna uma varivel dentro da view). Talvez o mais difcil de entender aqui seja essa parte: Dentro da div#main_content, eu dei o comando pra carregar outra view, a varivel $pagina, que como definida no nosso controller ser a principal, fazendo com que o template carregue qualquer view definida nos controllers. Para exemplificar melhor criarei outro mtodo. Tambm criei uma view menu, e um estilo em css, como podem ver na estrutura do meu projeto (amplie a foto). O controller ficar assim ao final do tutorial:
class Site extends CI_Controller { private $_tpl = 'themes/template1'; private $dados = array(); function __construct() { parent::__construct(); } function index() { $this->dados['titulo'] = 'Ol, seja bem vindo !'; $this->dados['pagina'] = 'principal'; $this->load->view($this->_tpl, $this->dados); } function outraview() { $this->dados['titulo'] = 'Ol, essa outra view !'; $this->dados['pagina'] = 'outra_view'; $this->load->view($this->_tpl, $this->dados); } }
Voc deve estar se perguntando, como vou incluir javascripts? Simples, voc adiciona somente nas views que for realmente utilizar, at uma boa prtica, incluir os seus javascripts no final do arquivo, tendo assim uma renderizao progressiva da pgina.