Pesquisar

13 de dez de 2011

Catalyst Framework Perl - (parte 2)

Configurar view
Entre no seu terminal e digite:

$ cd MyApp
$ script/myapp_create.pl view TT TT

Vai ter um retorno parecido com esse:

exists "/home/user/sites/MyApp/script/../lib/MyApp/View"
exists "/home/user/sites/MyApp/script/../t"
created "/home/user/sites/MyApp/script/../lib/MyApp/View/TT.pm"
created "/home/user/sites/MyApp/script/../t/view_TT.t"


Na primeira parte desse artigo, criamos o controller Welcome, agora vamos criar um controller chamado "Exemplo", para isso digite no seu terminal:

$ script/myapp_create.pl controller Exemplo

Vai ter um retorno parecido com esse:

exists "/home/user/sites/MyApp/script/../lib/MyApp/Controller"
exists "/home/user/sites/MyApp/script/../t"
created "/home/user/sites/MyApp/script/../lib/MyApp/Controller/Exemplo.pm"
created "/home/user/sites/MyApp/script/../t/controller_Exemplo.t"


Antes de começar a explicar o funcionamento, por padrão, o módulo 'Catalyst::View::TT' usa a extensão 'tt' para os templates, mas tem pessoas que gosta de salvar os templates com a extensão 'htm' ou 'html'. Para mudar a extensão, vá no diretório 'view' da sua aplicação e abra o arquivo 'TT.pm', você verá um código parecido a esse:

package MyApp::View::TT;

use strict;
use warnings;

use base 'Catalyst::View::TT';

__PACKAGE__->config(
TEMPLATE_EXTENSION => '.tt',
render_die => 1,
);

Para alterar a extensão, mude o valor do parâmetro 'TEMPLATE_EXTENSION', exemplo: EMPLATE_EXTENSION => '.html'.

Abra o 'controller' Exemplo, você verá um código parecido a esse:

sub index :Path :Args(0) {
my ( $self, $c ) = @_;

$c->response->body('Matched MyApp::Controller::Exemplo in Exemplo.');
}

Altere esse código por isso:

sub index :Path :Args(0) {
my ( $self, $c ) = @_;

# array cores
my @cores = qw/Azul Vermelho Verde Amarelo Preto Cinza/;

# hash numeros
my %numeros = (
um => 1,
dois => 2,
tres => 3,
quatro => 4,
cinco => 5
);

# enviar escalar nome para o template
$c->stash->{nome} = 'Lucas';

# enviar array cores para o template
$c->stash->{cores} = \@cores;

# enviar hash numeros para o template
$c->stash->{numeros} = \%numeros;

# nome do arquivo, se mudou a extensão altere, ex: 'index.htm'
$c->stash->{template} = 'index.tt';

# formato da view
$c->forward('View::TT');
}

-----------------------------------------------------------------------------

Fonte: www.vivaolinux.com.br

Nenhum comentário:

Postar um comentário