um hello world no kohana 3

olá, pessoal da interwebs! se você acompanhou o post anterior sobre o kohana (este aqui), viu que eu prometi um hello world no kohana. basicamente, o próprio kohana já tem uma aplicação de exemplo. o que faremos agora é configurar e investigar sua execução.

primeiro, vá até a página de download do kohana e baixe o framework. se você não sabe como instalar, consulte um de nossos guias: instalando o kohana framework 3 ou instalando o kohana framework 3 em 5 minutos.

depois de instalado, ao acessar o diretório do kohana, você vai ver o log da instalação. se sua instalação passar em todos os requisitos, você pode remover o arquivo install.php.

entretanto, se você tentar executar após ter removido o script install.php (ou renomeado), será exibido o seguinte aviso:

cadê?

isso acontece por causa de uma configuração padrão que vem no arquivo de bootstrap da nossa aplicação de exemplo (o kohana já tem uma). esse arquivo está em kohana/application/bootstrap.php e serve para definir alguns parâmetros iniciais da nossa aplicação.

no bootstrap.php, procure pelo seguinte trecho:


Kohana::init(array(
 'base_url'   => '/',
));

e substitua por


Kohana::init(array(
 'base_url'   => '/kohana/',
 ));

em outras palavras, você vai informar a pasta onde está localizado o framework no diretório do servidor web. agora, ao recarregar a o link, verá o singelo “hello, world!”.

para alterar essa mensagem, vá até kohana/application/classes/controller/welcome.php . este é o código dele:


<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

 public function action_index()
 {
 $this->request->response = 'hello, world!';
 }

} // End Welcome

bem simples. se você já está familiarizado com aplicações mvc, não deve ser muito diferente do que você já viu por aí.

vamos fazer o seguinte agora: dentro da pasta kohana/application, crie uma pasta de nome views (se ela já não existir), crie um arquivo hello_world.php dentro dessa pastta e adicione o seguinte código:


<?php defined('SYSPATH') or die('No direct script access.'); ?>
<html>
 <head>
 </head>
<body>
<h2><?php echo $header; ?></h2>
<p><?php echo $content; ?></p>
</body>
</html>

agora, vamos ao nosso Controller_Welcome e deixe-o com código abaixo:


<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

 public function action_index()
 {
 $view = View::factory('hello_world');
 $view->set('header', 'Hello world!');
 $view->set('content', 'This is an example');
 $this->request->response = $view;
 }

} // End Welcome

para finalizar, recarregue a página e voilà!

um hello world melhorzinho

yay!

quando você estiver populando uma view, você pode ter o mesmo efeito do caso anterior se, no método set() da sua view, você passar um array associativo como parâmetro. seu array deve ter índices correspondentes aos nomes das variáveis na sua view, ou seja:


<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

 public function action_index()
 {
 $view = View::factory('hello_world');
 $data['header'] = 'Hello world!';
 $data['content'] = 'This is an example'
 $view->set($data);
 $this->request->response = $view;
 }

} // End Welcome

pretty neat, huh? fique antenado para mais dicas. vamos começar a complicar um pouquinho🙂

update: o felipe bastos lembrou de mais uma forma de atribuir variáveis a uma view, segue:


<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

 public function action_index()
 {
 $view = View::factory('hello_world');
 $data->header = 'Hello world!';
 $data->content = 'This is an example'
 $this->request->response = $view;
 }

} // End Welcome


3 Comentários on “um hello world no kohana 3”

  1. Só acrescentando ..
    No último exemplo seria ..

    $data[‘header’] = ‘Hello world!’;
    $data[‘content’] = ‘This is an example’;
    $view->set($data);

    E outra opção, que acho mais orientado a objetos ..

    $view->header = ‘Hello world’;
    $view->content = ‘This is an example’;

    • cacovsky disse:

      obrigado pela correção, felipe. sua dica foi acrescentada também😉

      tudo bem que sua sugestão esteja “mais orientada a objetos” (imagino que por estar acessando as variáveis da view como se fossem atributos, estou certo?), o que quis mostrar é a facilidade, ou uma dica de convention over configuration. por exemplo, uma consulta ou um objeto qualquer pode retornar um array e é mais prático simplesmente utilizar essa característica do kohana de fazer binding dos valores nos índices do array às variáveis de mesmo nome desses índices na view.

      muito grato e visite sempre🙂

  2. Muito legal, fiz um tutorial explicando a estrutura básica de um site com kohana 3 fica fikdik para o pessoal que quer apreender.

    Abraço cacovsky!


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s