44 lines
940 B
PHP
44 lines
940 B
PHP
<?php
|
|
/**
|
|
* Smarty Internal Plugin Compile Object Block Function
|
|
* Compiles code for registered objects as block function
|
|
*
|
|
|
|
|
|
* @author Uwe Tews
|
|
*/
|
|
|
|
namespace Smarty\Compile;
|
|
|
|
/**
|
|
* Smarty Internal Plugin Compile Object Block Function Class
|
|
*
|
|
|
|
|
|
*/
|
|
class ObjectMethodBlockCompiler extends BlockCompiler {
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
protected function getIsCallableCode($tag, $function): string {
|
|
$callbackObject = "\$_smarty_tpl->getSmarty()->registered_objects['{$tag}'][0]";
|
|
return "(isset({$callbackObject}) && is_callable(array({$callbackObject}, '{$function}')))";
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
protected function getFullCallbackCode($tag, $function): string {
|
|
$callbackObject = "\$_smarty_tpl->getSmarty()->registered_objects['{$tag}'][0]";
|
|
return "{$callbackObject}->{$function}";
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
protected function blockIsCacheable(\Smarty\Smarty $smarty, $function): bool {
|
|
return true;
|
|
}
|
|
|
|
}
|