PHP code example of pattern-lab / patternengine-twig
1. Go to this page and download the library: Download pattern-lab/patternengine-twig library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pattern-lab / patternengine-twig example snippets
$filter = new Twig_SimpleFilter('rot13', function ($string) {
return str_rot13($string);
});
$function = new Twig_SimpleFunction('boo', function ($string) {
return $string." boo! ";
});
$test = new Twig_SimpleTest('red', function ($value) {
if (isset($value["color"]) && $value["color"] == 'red') {
return true;
}
return false;
});
// these files are loaded three times and we can't re-set a class
if (!class_exists("Project_setdupe_Node")) {
class Project_setdupe_Node extends Twig_Node {
public function __construct($name, Twig_Node_Expression $value, $line, $tag = null) {
parent::__construct(array('value' => $value), array('name' => $name), $line, $tag);
}
public function compile(Twig_Compiler $compiler) {
$compiler
->addDebugInfo($this)
->write('$context[\''.$this->getAttribute('name').'\'] = ')
->subcompile($this->getNode('value'))
->raw(";\n");
}
}
}
// these files are loaded three times and we can't re-set a class
if (!class_exists("Project_setdupe_TokenParser")) {
class Project_setdupe_TokenParser extends Twig_TokenParser {
public function parse(Twig_Token $token) {
$parser = $this->parser;
$stream = $parser->getStream();
$name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
$stream->expect(Twig_Token::OPERATOR_TYPE, '=');
$value = $parser->getExpressionParser()->parseExpression();
$stream->expect(Twig_Token::BLOCK_END_TYPE);
return new Project_setdupe_Node($name, $value, $token->getLine(), $this->getTag());
}
public function getTag() {
return 'setdupe';
}
}
}
$twig = new Twig_Environment($loader);
foreach ($twigExtensions as $twigExtension) {
$twig->addExtension(new $twigExtension());
}
new Twig_SimpleFunction('testPlFunction', function($arg) {
return 'Thanks for testing out the Pattern Lab Example Twig Extension with this arg: ' . $arg;
}),
$data = array("hello" => "world");
$string = "If I say hello you say {{ hello }}.";
$stringLoader = \PatternLab\Template::getStringLoader();
$output = $stringLoader->render(array("string" => $string, "data" => $data));
print $output; // outputs "If I say hello you say world."
$data = array(...);
$filesystemLoader = \PatternLab\Template::getFilesystemLoader();
$output = $filesystemLoader->render(array("template" => "viewall", "data" => $data));
print $output; // outputs the viewall view from the configured styleguidekit