Movatterモバイル変換


[0]ホーム

URL:


LightnCandy option: FLAG_EXTHELPER

Do not including custom helper codes into compiled PHP codes. This reduces the code size, but you need to take care of your helper functions when rendering. If you forget to include required functions when execute rendering function,undefined function runtime error will be triggered.

Sample Codes

Default is to include used custom helpers into compiled PHP

Used option: FLAG_HANDLEBARS

Data:
NULL
Template:
{{foo}}
Result:
use \LightnCandy\SafeString as SafeString;use \LightnCandy\Runtime as LR;return function ($in = null, $options = null) {    $helpers = array(            'foo' => function() {      return 'Hello!';    },);    $partials = array();    $cx = array(        'flags' => array(            'jstrue' => false,            'jsobj' => false,            'jslen' => false,            'spvar' => true,            'prop' => false,            'method' => false,            'lambda' => false,            'mustlok' => false,            'mustlam' => false,            'mustsec' => false,            'echo' => false,            'partnc' => false,            'knohlp' => false,            'debug' => isset($options['debug']) ? $options['debug'] : 1,        ),        'constants' => array(),        'helpers' => isset($options['helpers']) ? array_merge($helpers, $options['helpers']) : $helpers,        'partials' => isset($options['partials']) ? array_merge($partials, $options['partials']) : $partials,        'scopes' => array(),        'sp_vars' => isset($options['data']) ? array_merge(array('root' => $in), $options['data']) : array('root' => $in),        'blparam' => array(),        'partialid' => 0,        'runtime' => '\LightnCandy\Runtime',    );        $inary=is_array($in);    return ''.LR::encq($cx, LR::hbch($cx, 'foo', array(array(),array()), 'encq', $in)).'';};

Check the code to know used helper codes

Source Code
require('./vendor/autoload.php');useLightnCandy\LightnCandy;$template="{{foo}}";$php=LightnCandy::compile($template,array("flags"=>LightnCandy::FLAG_HANDLEBARS,"helpers"=>array("foo"=>function(){return'Hello!';},"bar"=>function(){return'World!';})));echo$php

The generated code will not include custom helper

Used option: FLAG_HANDLEBARS FLAG_EXTHELPER

Data:
NULL
Template:
{{foo}},{{bar}}
Result:
use \LightnCandy\SafeString as SafeString;use \LightnCandy\Runtime as LR;return function ($in = null, $options = null) {    $helpers = array(            'foo' => 'foo',            'bar' => 'bar',);    $partials = array();    $cx = array(        'flags' => array(            'jstrue' => false,            'jsobj' => false,            'jslen' => false,            'spvar' => true,            'prop' => false,            'method' => false,            'lambda' => false,            'mustlok' => false,            'mustlam' => false,            'mustsec' => false,            'echo' => false,            'partnc' => false,            'knohlp' => false,            'debug' => isset($options['debug']) ? $options['debug'] : 1,        ),        'constants' => array(),        'helpers' => isset($options['helpers']) ? array_merge($helpers, $options['helpers']) : $helpers,        'partials' => isset($options['partials']) ? array_merge($partials, $options['partials']) : $partials,        'scopes' => array(),        'sp_vars' => isset($options['data']) ? array_merge(array('root' => $in), $options['data']) : array('root' => $in),        'blparam' => array(),        'partialid' => 0,        'runtime' => '\LightnCandy\Runtime',    );        $inary=is_array($in);    return ''.LR::encq($cx, LR::hbch($cx, 'foo', array(array(),array()), 'encq', $in)).', '.LR::encq($cx, LR::hbch($cx, 'bar', array(array(),array()), 'encq', $in)).'';};

Check the code to know used helper codes

Source Code
require('./vendor/autoload.php');useLightnCandy\LightnCandy;$template="{{foo}}, {{bar}}";functionfoo(){return'Hello!';}functionbar(){return'World!';}$php=LightnCandy::compile($template,array("flags"=>LightnCandy::FLAG_HANDLEBARS|LightnCandy::FLAG_EXTHELPER,"helpers"=>array("0"=> foo,"1"=> bar)));echo$php

Anonymous function will still be included in generated code

Used option: FLAG_HANDLEBARS FLAG_EXTHELPER

Data:
NULL
Template:
{{foo}},{{bar}}
Result:
use \LightnCandy\SafeString as SafeString;use \LightnCandy\Runtime as LR;return function ($in = null, $options = null) {    $helpers = array(            'bar' => 'bar',            'foo' => function() {      return 'Hello!';    },);    $partials = array();    $cx = array(        'flags' => array(            'jstrue' => false,            'jsobj' => false,            'jslen' => false,            'spvar' => true,            'prop' => false,            'method' => false,            'lambda' => false,            'mustlok' => false,            'mustlam' => false,            'mustsec' => false,            'echo' => false,            'partnc' => false,            'knohlp' => false,            'debug' => isset($options['debug']) ? $options['debug'] : 1,        ),        'constants' => array(),        'helpers' => isset($options['helpers']) ? array_merge($helpers, $options['helpers']) : $helpers,        'partials' => isset($options['partials']) ? array_merge($partials, $options['partials']) : $partials,        'scopes' => array(),        'sp_vars' => isset($options['data']) ? array_merge(array('root' => $in), $options['data']) : array('root' => $in),        'blparam' => array(),        'partialid' => 0,        'runtime' => '\LightnCandy\Runtime',    );        $inary=is_array($in);    return ''.LR::encq($cx, LR::hbch($cx, 'foo', array(array(),array()), 'encq', $in)).', '.LR::encq($cx, LR::hbch($cx, 'bar', array(array(),array()), 'encq', $in)).'';};

Check the code to know used helper codes

Source Code
require('./vendor/autoload.php');useLightnCandy\LightnCandy;$template="{{foo}}, {{bar}}";functionbar(){return'World!';}$php=LightnCandy::compile($template,array("flags"=>LightnCandy::FLAG_HANDLEBARS|LightnCandy::FLAG_EXTHELPER,"helpers"=>array("1"=> bar,"foo"=>function(){return'Hello!';})));echo$php

Anonymous function will still be included in generated code

Used option: FLAG_HANDLEBARS FLAG_EXTHELPER

Data:
NULL
Template:
{{foo}},{{bar}}
Result:
use \LightnCandy\SafeString as SafeString;use \LightnCandy\Runtime as LR;return function ($in = null, $options = null) {    $helpers = array(            'bar' => '1',            'foo' => '1',);    $partials = array();    $cx = array(        'flags' => array(            'jstrue' => false,            'jsobj' => false,            'jslen' => false,            'spvar' => true,            'prop' => false,            'method' => false,            'lambda' => false,            'mustlok' => false,            'mustlam' => false,            'mustsec' => false,            'echo' => false,            'partnc' => false,            'knohlp' => false,            'debug' => isset($options['debug']) ? $options['debug'] : 1,        ),        'constants' => array(),        'helpers' => isset($options['helpers']) ? array_merge($helpers, $options['helpers']) : $helpers,        'partials' => isset($options['partials']) ? array_merge($partials, $options['partials']) : $partials,        'scopes' => array(),        'sp_vars' => isset($options['data']) ? array_merge(array('root' => $in), $options['data']) : array('root' => $in),        'blparam' => array(),        'partialid' => 0,        'runtime' => '\LightnCandy\Runtime',    );        $inary=is_array($in);    return ''.LR::encq($cx, LR::hbch($cx, 'foo', array(array(),array()), 'encq', $in)).', '.LR::encq($cx, LR::hbch($cx, 'bar', array(array(),array()), 'encq', $in)).'';};

Check the code to know used helper codes

Source Code
require('./vendor/autoload.php');useLightnCandy\LightnCandy;$template="{{foo}}, {{bar}}";$php=LightnCandy::compile($template,array("flags"=>LightnCandy::FLAG_HANDLEBARS|LightnCandy::FLAG_EXTHELPER,"helpers"=>array("1"=> bar,"foo"=>1)));echo$php

See Also...

Search the cookbook

Generated at 2022-03-21T13:13:56.019Z

[8]ページ先頭

©2009-2025 Movatter.jp