[Cascavel-pm] Instalando TT2
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quarta Fevereiro 7 00:09:30 PST 2007
On Feb 6, 2007, at 5:28 PM, vict0r wrote:
> Minha pergunta foi em cima disso, q está no manual do TT.
>
> DYNAMIC CONTENT GENERATION VIA APACHE/MOD_PERL HANDLER
>
> NOTE: the Apache::Template module is now available from CPAN and
> provides a simple and easy to use Apache/mod_perl interface to the
> Template Toolkit. It's only in it's first release (0.01) at the time
> of writing and it currently only offers a fairly basic facility, but
> it implements most, if not all of what is described below, and it
> avoids the need to write your own handler. However, in many cases,
> you'll want to write your own handler to customise processing for your
> own need, and this section will show you how to get started.
>
> The Template module can be used in a similar way from an
> Apache/mod_perl handler. Here's an example of a typical Apache
> httpd.conf file:
>
> PerlModule CGI;
> PerlModule Template
> PerlModule MyOrg::Apache::User
>
> PerlSetVar websrc_root /home/abw/websrc
>
> <Location /user/bin>
> SetHandler perl-script
> PerlHandler MyOrg::Apache::User
> </Location>
>
>
> Sem essa configuração no Apache eu consigo usar o TT com mod_perl ?
>
> # rpm -q perl mod_perl httpd perl-Template-Toolkit
> perl-5.8.8-5
> mod_perl-2.0.2-5.1
> httpd-2.2.2-1.2
> perl-Template-Toolkit-2.15-1.fc5
Eheh... carinha, isto não é PHP, tá?
Aqui, falta um programa, que é o teu Apache Handler.
É dele a responsabilidade de instanciar um Template, decidir que
template processar, passar parâmetros e capturar de volta o texto
gerado, e passar o texto de volta para o ModPerl.
Isso que você está lendo se aplica à diretriz PerlModule, não à
existência de um ContentHandler apropriado para o que você quer fazer.
Se você quer usar TT como PHP, eu penso que a maneira mais simples
de fazer é implementar um ContentHandler para o seu apache e, depois
de coletar os dados enviados na requisição, executar um
Template::process() para gerar o resultado, e passar como parâmetro
de saída um Apache::Request, que vai permitir inserir os dados de
volta para o Apache como conteúdo:
sub handler($$){
my ( $r, $class ) = ( shift, shift );
my $req = new Apache::Request( $r );
# MISSING: obter configuração para o TT a partir da configuração
do apache (%parameters).
my $template = new Template( %parameters );
$template->process( $req->params( 'template' ), { Request =>
$req }, $req );
}
Isso resolveria o seu problema.
Claro, com muito pouco tempo você ia querer implementar uma
conexão com base de dados, e outras coisitas mais, e ia acabar com um
programa completo, eventualmente.
Eu recomendo ler mais sobre ModPerl, você vai gostar.
Espero que isso ajude.
Putamplexos!
--
Luis Motta Campos is a software engineer,
perl fanatic evangelist, and amateur {cook, photographer}
Mais detalhes sobre a lista de discussão Cascavel-pm