[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