xorock / zend-phptal
PHPTAL integration for Zend Framework 3
Requires
- php: ^5.5 || ^7.0
- container-interop/container-interop: ^1.1
- phptal/phptal: ^1.3
Requires (Dev)
- phpunit/phpunit: ^4.7
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2025-01-04 19:26:49 UTC
README
Provides PHPTAL integration for Zend Framework 3.
Installation
Install this library using composer:
$ composer require xorock/zend-phptal
Then add ZfPhptal
to Your module config under the modules
key.
Configuration
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:
module.config.php
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()}
Examples
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'));