PEAR Manual
Prev |  | Next

# $flexy->compile()

$flexy->compile() -- Converts a template from markup to PHP if required

## Synopsis

``void $flexy-> compile` (string $template)`

## Description

If neccessary it will convert the Template markup into PHP code, and writes it to the compiledTemplate directory adding the {locale}.php to the end of the filename. The Template is only compiled if

- No compiled file exists

- The file modification date of the template is greater than the compiled one

- The forceCompile Flag was set in config or when you created the template object.

It is not normally neccesary to set the forceCompile flag, unles you are working on the engine it'self.

## Parameter

- `string $template` - Used in conjuction with the config variable 'templateDir' to locate the template to compile into PHP code.

## Return value

`string` - the location of the compiled file (which could be used with include) - although it is recommended to use the outputObject methods.

## Note

This function can not be called statically.

## Example

Example 41-1. Compiling multiple files.
    class controller_test
    {

        var $masterTemplate = "master.html"
        var $template = "home.html"; // name of template
        var $title;                // page title;
        var $numbers = array();    // an array example

        /* start section - deals with posts, get variables etc.*/

        function controller_test()
        {
            $this->start();
            $this->output();
        }

        function start()
        {
            $this->title = "<Hello World>";

            for ($i = 1;$i< 5;$i++) {
                $this->numbers[$i] = "Number $i";
            }
        }

        /* output section - probably best to put this in the default_controller class */

        function output() {
            $master = new HTML_Template_Flexy();
            $master->compile($this->masterTemplate);
            $master->outputObject($this);
        }

        function outputBody() {
            $body = new HTML_Template_Flexy();
            $body->compile($this->template);
            $body->outputObject($this);
        }

    }

    new controller_test;

Example 41-2. Master template example
    Page Header Goes here.

    {outputBody()}

    Page Footer Goes here

Example 41-3. Simple ouput example
    Page Header Goes here.

    some numbers
    Number 1
    Number 2
    Number 3
    Number 4

    Page Footer Goes here

Prev | Home | Next
new HTML_Template_Flexy | Up | $flexy->outputObject()