Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
4 class W e l c o m e e x t e n d s C I _ C o n t r o l l e r {
5 public f u n c t i o n index ()
6 {
7 // $this - > load - > view ( ’ w e l c o m e _ m e s s a g e ’) ;
8 $data [ ’ m e n s a g e m ’] = " Olá Mundo !! ";
9 $this - > load - > view ( ’ o l a _ m u n d o ’ , $data ) ;
10 }
Note que não é necessário fechar o arquivo PHP com ?>; de fato, é uma boa prática não fazê-lo,
evitando assim a possibilidade de erro na interpretação em função de algum espaço ou alguma quebra
de linha após o ?>. Isso não é um requisito do framework, apenas uma boa prática da escrita do PHP.
Você verá que os arquivos do framework não são fechados com ?>.
Após modificar o controller, crie um arquivo chamado ola_mundo.php na pasta views com o código-
fonte a seguir:
1 < html >
2 < head >
3 < title >
4 <? php echo $ m e n s a g e m ? >
5 </ title >
6 </ head >
7 < body >
8 <h1 > <? php echo $ m e n s a g e m ? > </h1 >
9 </ body >
10 </ html >
Note que o controller não tem um construtor, mas ainda assim é possível acessar a instância do
$this do framework; isso ocorre porque, ao declarar a classe, foram herdadas as características de um
controller por meio da instrução extends CI_Controller, e isso faz com que o framework entenda que
a classe Welcome.php é um controller.
Na linha $data[’mensagem’] = ”Olá Mundo”; criamos de maneira implícita um array com o índice
mensagem e o valor Olá mundo. Posteriormente, passamos essa variável para a view ao adicionar o array
com um parâmetro ao carregar a view em $this->load->view(’ola_mundo’,$data);
Esse é o modo como passamos dados dos controllers para as views, podendo ser um simples array
com um único índice ou um array multidimensional com várias dimensões de dados.
O próximo exercício é ainda mais simples. Adicione ao mesmo controller Welcome.php um novo
método chamado teste() com esse código-fonte:
1 public f u n c t i o n teste () {
2 echo " Isto é apenas um teste " ;
3 }
O objetivo desse teste é entender como acessar esse método. Para visualizar o resultado desse
código, você deve acessar o endereço completo, conforme esta URL:
http://localhost/CodeIgniter/index.php/welcome/teste.
Note no endereço que estamos indicando o caminho completo incluindo o front controller do fra-
mework, que é o arquivo index.php. Se você ainda não incluiu o arquivo .htaccess na pasta-raiz do
Criando um blog com o CodeIgniter
Prof. Marcelo C. Mussel
projeto e tentar retirar o index.php da URL, você verá a mensagem de erro HTTP 404, do Apache,
não do framework.
Para corrigir o carregamento do framework sem precisar digitar o index.php, basta adicionar o
arquivo .htaccess conforme já exposto. Adicione este código a um arquivo chamado .htaccess e salve-o
na pasta-raiz da aplicação:
1 < I f M o d u l e m o d _ r e w r i t e .c >
2 R e w r i t e E n g i n e On
3 R e w r i t e C o n d %{ R E Q U E S T _ F I L E N A M E } ! -f
4 R e w r i t e C o n d %{ R E Q U E S T _ F I L E N A M E } ! -d
5 R e w r i t e R u l e ^(.*) $ index . php ? $1 [ L ]
6 </ IfModule >
Ao fazer isso, você conseguirá acessar o método teste() sem precisar digitar o segmento index.php
da URL. Caso você adicione o arquivo .htaccess e continue vendo o mesmo erro HTTP 404 de página
não encontrada do Apache, certifique-se que o módulo mod_rewrite está sendo carregado; você pode
fazer isso usando a função phpinfo() do PHP.
Você também pode passar parâmetros para os métodos por meio das URLs. Para testar essa
funcionalidade, vamos alterar o método teste() para este código-fonte:
1 public f u n c t i o n teste ( $parametro1 , $ p a r a m e t r o 2) {
2 echo $parametro1;
3 echo " < br / >" ;
4 echo $parametro2;
5 }
Agora o método recebe dois parâmetros por meio da URL e mostra o texto informado nos parâ-
metros no navegador. Basta adicionar duas strings à URL para testar, como por exemplo a URL
http://localhost/CodeIgniter/welcome/teste/Iron/Maiden
4 $db [ ’ d e f a u l t ’] = array (
5 ’ dsn ’ => ’’,
6 ’hostname’ => ’localhost’,
7 ’ u s e r n a m e ’ = > ’ root ’ ,
8 ’ p a s s w o r d ’ = > ’ admin ’ ,
9 ’ d a t a b a s e ’ = > ’ blog ’ ,
10 ’ d b d r i v e r ’ = > ’ mysqli ’ ,
11 ’dbprefix’ => ’’,
12 ’ p c o n n e c t ’ = > TRUE ,
13 ’ d b _ d e b u g ’ = > TRUE ,
14 ’ c a c h e _ o n ’ = > TRUE ,
15 ’cachedir’ => ’’,
16 ’ c h a r _ s e t ’ = > ’ utf8 ’ ,
17 ’dbcollat’ => ’utf8_general_ci’,
18 ’swap_pre’ => ’’,
19 ’ e n c r y p t ’ = > FALSE ,
20 ’ c o m p r e s s ’ = > FALSE ,
21 ’ s t r i c t o n ’ = > FALSE ,
22 ’ f a i l o v e r ’ = > array () ,
23 ’ s a v e _ q u e r i e s ’ = > TRUE
24 );
Alguns parâmetros já vêm preenchidos com valores-padrão, que são os mais comuns e provavelmente
se encaixarão bem nesta aplicação de exemplo, bastando na prática adicionar o servidor, o banco de
dados, o usuário e a senha.