The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Solstice::Compiler::View - Compiles a View and Template into a perl structure

SYNOPSIS

my $compiler = Solstice::Compiler::View->new();
my $paint_method = $compiler->makePaintMethod($view_object);

DESCRIPTION

This module will take a Solstice::View object and the HTML::Template template that it specifies, and create a paint method for the view.

We do this because painting a template is very expensive... on complicated screens we were seeing %50 of page creation time in template painting.

The compiled paint methods will end up in the path specified in the compiled_template_path in the app's configuration file. If there is no path specified, no compiled view will be made.

The goal of this module to support the syntax of HTML::Template, at least for some limited uses. It is heavily biased towards the parts of HTML::Template that we use, it is very possible that there will be bugs in other parts of the syntax. We will try to fix such bugs, provided they don't have a noticable impact on the performance of the compiled paint method.

Very important note - this will not work for modules that choose their templates dynamically. You should change those so views are chosen dynamically, or disable compiled views for that application.

Methods

new()

constructor.

makePaintMethod($package_name)

Takes a package name, and creates a paint method based on the template it uses.

AUTHOR

Catalyst Group, <catalyst@u.washington.edu>

VERSION

$Revision: 2944 $

COPYRIGHT

Copyright 1998-2007 Office of Learning Technologies, University of Washington

Licensed under the Educational Community License, Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.opensource.org/licenses/ecl1.php

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.