Embperl - building dynamic websites with Perl


DESCRIPTION
[ << Prev: SYNOPSIS ] [ Content ]

Embperl::Recipe provides basic features that are necessary for createing your own recipes. To do so you have to create a class that provides a get_recipe method which returns a array reference that contains the description what to do.



get_recipe ($class, $r, $recipe)top
 

$class

 

The class name

 

$r

 

The Embperl request record object (Embperl::Req), maybe a derived object when running under EmbperlObject.

 

$recipe

 

The name of the recipe

The function must return an array that describes the desired action. The array contains a tree structure of providers.



Providerstop
 

file

 

read file data

Parameter:

 

filename

 

Gives the file to read

 

memory

 

get data from a scalar

Parameter:

 

source

 

Gives the source as a scalar reference

 

name

 

Gives the name under which this item should be cache

 

epparse

 

parse file into a Embperl tree structure

Parameter:

 

source

 

Gives the source

 

syntax

 

Syntax to use

 

epcompile

 

compile Embperl tree structure

Parameter:

 

source

 

Gives the source

 

eprun

 

execute Embperl tree structure

Parameter:

 

source

 

Gives the source

 

cache_key

 

See description of cacheing

 

cache_key_options

 

See description of cacheing

 

cache_key_func

 

See description of cacheing

 

eptostring

 

convert Embperl tree structure to string

Parameter:

 

source

 

Gives the source

 

libxslt-parse-xml

 

parse xml source for libxslt

Parameter:

 

source

 

Gives the xml source

 

libxslt-compile-xsl

 

parse and compile stylesheet for libxslt

Parameter:

 

stylesheet

 

Gives the stylesheet source

 

libxslt

 

do a xsl transformation via libxslt

Parameter:

 

source

 

Gives the parsed xml source

 

stylesheet

 

Gives the compiled stylesheet source

 

param

 

Gives the parameters as hash ref

 

xalan-parse-xml

 

parse xml source for xalan

Parameter:

 

source

 

Gives the xml source

 

xalan-compile-xsl

 

parse and compile stylesheet for xalan

Parameter:

 

stylesheet

 

Gives the stylesheet source

 

xalan

 

do a xsl transformation via xalan

Parameter:

 

source

 

Gives the parsed xml source

 

stylesheet

 

Gives the compiled stylesheet source

 

param

 

Gives the parameters as hash ref



Cache parametertop
 

expires_in

 

expires_func

 

expires_filename

 

cache



Formattop

Heres an example that show how the recipe must be build:

  sub get_recipe

    {
    my ($class, $r, $recipe) = @_ ;

    my $param  = $r -> component -> param  ;
    my @recipe ;

    push @recipe, {'type'   =>  'file'      } ;
    push @recipe, {'type'   =>  'epparse'   } ;
    push @recipe, {'type'   =>  'epcompile', cache => 1 } ;
    push @recipe, {'type'   =>  'eprun'     }  ;

    my $config = $r -> component -> config  ;
    my $xsltproc = $config -> xsltproc ;

    my @stylesheet =
        (
        { type => 'file',  filename  => $config -> xsltstylesheet, },
        { type =>  $xsltproc . '-compile-xsl', cache => 1 },
        ) ;
    push @recipe, {'type'   =>  'eptostring' } ;
    push @recipe, {'type'   =>  $xsltproc . '-parse-xml', } ;
    push @recipe, {'type'   =>  $xsltproc,   stylesheet => \@stylesheet } ;

    return \@recipe ;
    }

This corresponds to the following diagramm (when xsltproc = xalan):

    +-------------------+   +--------------------+           
    + file {inputfile}  +   +file{xsltstylesheet}+           
    +-------------------+   +--------------------+           
          |                         |                         
          v                         v                         
    +-------------------+   +-------------------+           
    + xalan-parse-xml   +   + xalan-compile-xsl +           
    +-------------------+   +-------------------+           
          |                         | 
          |                         |
          |         +-----------+   |
          +-------> + xalan     + <-+
                    +-----------+

Take a look at the recipes that comes with Embperl to get more ideas what can be done.


[ << Prev: SYNOPSIS ] [ Content ]


© 1997-2023 Gerald Richter / actevy