PHPTAL integration for Zend Framework 3

0.1.1 2016-08-28 19:29 UTC

This package is not auto-updated.

Last update: 2021-04-16 23:08:00 UTC


Provides PHPTAL integration for Zend Framework 3.


Install this library using composer:

$ composer require xorock/zend-phptal

Then add ZfPhptal to Your module config under the modules key.


The following configuration options, specific to PHPTAL, is consumed by Service Factory:

return [
    'zfphptal' => [
        'cache_dir' => 'path to cached templates',
        // if enabled, delete all template cache files before processing
        'cache_purge_mode' => boolean,
        // set how long compiled templates and phptal:cache files are kept; in days 
        'cache_lifetime' => 30,
        'encoding' => 'set input and ouput encoding; defaults to UTF-8',
        // one of the predefined constants: PHPTAL::HTML5,  PHPTAL::XML, PHPTAL::XHTML
        'output_mode' => PhptalEngine::HTML5,
        // set whitespace compression mode
        'compress_whitespace' => boolean,
        // strip all html comments
        'strip_comments' => boolean,
        // if enabled, forces to reparse templates every time
        'debug' => boolean,

Using Zend Framework View Helpers

PhptalRenderer proxies to HelperPluginManager by public function plugin($name, array $options = null) or directly with __call():

<a tal:attributes="href php: this.url('sample_route')">link</a>

You can register own plugins in global / module config using ZF 'view_helpers' option key. For example, to register Test plugin:


return [
    'view_helpers' => [
        'aliases' => [
            'test' => \My\View\Helper\Test::class,
        'factories' => [
            \My\View\Helper\Test::class => \Zend\ServiceManager\Factory\InvokableFactory::class

// inside template
// ${php: this.test()}


Example .html files for the skeleton application can be found in the examples folder.

Backward compatibility with ZTAL

For backward compatibility with ZTAL Project renderer registers numerous standard variables.

$this->engine->set('doctype', $this->plugin('Doctype'));
$this->engine->set('headTitle', $this->plugin('HeadTitle'));
$this->engine->set('headScript', $this->plugin('HeadScript'));
$this->engine->set('headLink', $this->plugin('HeadLink'));
$this->engine->set('headMeta', $this->plugin('HeadMeta'));
$this->engine->set('headStyle', $this->plugin('HeadStyle'));