php封装的smartyBC类完整实例


Posted in PHP onOctober 19, 2016

本文实例讲述了php封装的smartyBC类。分享给大家供大家参考,具体如下:

<?php
/**
 * Project:   Smarty: the PHP compiling template engine
 * File:    SmartyBC.class.php
 * SVN:     $Id: $
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 * For questions, help, comments, discussion, etc., please join the
 * Smarty mailing list. Send a blank e-mail to
 * smarty-discussion-subscribe@googlegroups.com
 *
 * @link   http://www.smarty.net/
 * @copyright 2008 New Digital Group, Inc.
 * @author  Monte Ohrt <monte at ohrt dot com>
 * @author  Uwe Tews
 * @author  Rodney Rehm
 * @package  Smarty
 */
/**
 * @ignore
 */
require_once(dirname(__FILE__) . '/Smarty.class.php');
/**
 * Smarty Backward Compatability Wrapper Class
 *
 * @package Smarty
 */
class SmartyBC extends Smarty
{
  /**
   * Smarty 2 BC
   *
   * @var string
   */
  public $_version = self::SMARTY_VERSION;
  /**
   * Initialize new SmartyBC object
   *
   * @param array $options options to set during initialization, e.g. array( 'forceCompile' => false )
   */
  public function __construct(array $options = array())
  {
    parent::__construct($options);
    // register {php} tag
    $this->registerPlugin('block', 'php', 'smarty_php_tag');
  }
  /**
   * wrapper for assign_by_ref
   *
   * @param string $tpl_var the template variable name
   * @param mixed &$value the referenced value to assign
   */
  public function assign_by_ref($tpl_var, &$value)
  {
    $this->assignByRef($tpl_var, $value);
  }
  /**
   * wrapper for append_by_ref
   *
   * @param string $tpl_var the template variable name
   * @param mixed  &$value the referenced value to append
   * @param boolean $merge  flag if array elements shall be merged
   */
  public function append_by_ref($tpl_var, &$value, $merge = false)
  {
    $this->appendByRef($tpl_var, $value, $merge);
  }
  /**
   * clear the given assigned template variable.
   *
   * @param string $tpl_var the template variable to clear
   */
  public function clear_assign($tpl_var)
  {
    $this->clearAssign($tpl_var);
  }
  /**
   * Registers custom function to be used in templates
   *
   * @param string $function   the name of the template function
   * @param string $function_impl the name of the PHP function to register
   * @param bool  $cacheable
   * @param mixed $cache_attrs
   */
  public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
  {
    $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs);
  }
  /**
   * Unregisters custom function
   *
   * @param string $function name of template function
   */
  public function unregister_function($function)
  {
    $this->unregisterPlugin('function', $function);
  }
  /**
   * Registers object to be used in templates
   *
   * @param string $object   name of template object
   * @param object $object_impl the referenced PHP object to register
   * @param array  $allowed   list of allowed methods (empty = all)
   * @param boolean $smarty_args smarty argument format, else traditional
   * @param array  $block_methods list of methods that are block format
   *
   * @throws SmartyException
   * @internal param array $block_functs list of methods that are block format
   */
  public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
  {
    settype($allowed, 'array');
    settype($smarty_args, 'boolean');
    $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
  }
  /**
   * Unregisters object
   *
   * @param string $object name of template object
   */
  public function unregister_object($object)
  {
    $this->unregisterObject($object);
  }
  /**
   * Registers block function to be used in templates
   *
   * @param string $block   name of template block
   * @param string $block_impl PHP function to register
   * @param bool  $cacheable
   * @param mixed $cache_attrs
   */
  public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
  {
    $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs);
  }
  /**
   * Unregisters block function
   *
   * @param string $block name of template function
   */
  public function unregister_block($block)
  {
    $this->unregisterPlugin('block', $block);
  }
  /**
   * Registers compiler function
   *
   * @param string $function   name of template function
   * @param string $function_impl name of PHP function to register
   * @param bool  $cacheable
   */
  public function register_compiler_function($function, $function_impl, $cacheable = true)
  {
    $this->registerPlugin('compiler', $function, $function_impl, $cacheable);
  }
  /**
   * Unregisters compiler function
   *
   * @param string $function name of template function
   */
  public function unregister_compiler_function($function)
  {
    $this->unregisterPlugin('compiler', $function);
  }
  /**
   * Registers modifier to be used in templates
   *
   * @param string $modifier   name of template modifier
   * @param string $modifier_impl name of PHP function to register
   */
  public function register_modifier($modifier, $modifier_impl)
  {
    $this->registerPlugin('modifier', $modifier, $modifier_impl);
  }
  /**
   * Unregisters modifier
   *
   * @param string $modifier name of template modifier
   */
  public function unregister_modifier($modifier)
  {
    $this->unregisterPlugin('modifier', $modifier);
  }
  /**
   * Registers a resource to fetch a template
   *
   * @param string $type   name of resource
   * @param array $functions array of functions to handle resource
   */
  public function register_resource($type, $functions)
  {
    $this->registerResource($type, $functions);
  }
  /**
   * Unregisters a resource
   *
   * @param string $type name of resource
   */
  public function unregister_resource($type)
  {
    $this->unregisterResource($type);
  }
  /**
   * Registers a prefilter function to apply
   * to a template before compiling
   *
   * @param callable $function
   */
  public function register_prefilter($function)
  {
    $this->registerFilter('pre', $function);
  }
  /**
   * Unregisters a prefilter function
   *
   * @param callable $function
   */
  public function unregister_prefilter($function)
  {
    $this->unregisterFilter('pre', $function);
  }
  /**
   * Registers a postfilter function to apply
   * to a compiled template after compilation
   *
   * @param callable $function
   */
  public function register_postfilter($function)
  {
    $this->registerFilter('post', $function);
  }
  /**
   * Unregisters a postfilter function
   *
   * @param callable $function
   */
  public function unregister_postfilter($function)
  {
    $this->unregisterFilter('post', $function);
  }
  /**
   * Registers an output filter function to apply
   * to a template output
   *
   * @param callable $function
   */
  public function register_outputfilter($function)
  {
    $this->registerFilter('output', $function);
  }
  /**
   * Unregisters an outputfilter function
   *
   * @param callable $function
   */
  public function unregister_outputfilter($function)
  {
    $this->unregisterFilter('output', $function);
  }
  /**
   * load a filter of specified type and name
   *
   * @param string $type filter type
   * @param string $name filter name
   */
  public function load_filter($type, $name)
  {
    $this->loadFilter($type, $name);
  }
  /**
   * clear cached content for the given template and cache id
   *
   * @param string $tpl_file  name of template file
   * @param string $cache_id  name of cache_id
   * @param string $compile_id name of compile_id
   * @param string $exp_time  expiration time
   *
   * @return boolean
   */
  public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
  {
    return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);
  }
  /**
   * clear the entire contents of cache (all templates)
   *
   * @param string $exp_time expire time
   *
   * @return boolean
   */
  public function clear_all_cache($exp_time = null)
  {
    return $this->clearCache(null, null, null, $exp_time);
  }
  /**
   * test to see if valid cache exists for this template
   *
   * @param string $tpl_file name of template file
   * @param string $cache_id
   * @param string $compile_id
   *
   * @return boolean
   */
  public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
  {
    return $this->isCached($tpl_file, $cache_id, $compile_id);
  }
  /**
   * clear all the assigned template variables.
   */
  public function clear_all_assign()
  {
    $this->clearAllAssign();
  }
  /**
   * clears compiled version of specified template resource,
   * or all compiled template files if one is not specified.
   * This function is for advanced use only, not normally needed.
   *
   * @param string $tpl_file
   * @param string $compile_id
   * @param string $exp_time
   *
   * @return boolean results of {@link smarty_core_rm_auto()}
   */
  public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
  {
    return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);
  }
  /**
   * Checks whether requested template exists.
   *
   * @param string $tpl_file
   *
   * @return boolean
   */
  public function template_exists($tpl_file)
  {
    return $this->templateExists($tpl_file);
  }
  /**
   * Returns an array containing template variables
   *
   * @param string $name
   *
   * @return array
   */
  public function get_template_vars($name = null)
  {
    return $this->getTemplateVars($name);
  }
  /**
   * Returns an array containing config variables
   *
   * @param string $name
   *
   * @return array
   */
  public function get_config_vars($name = null)
  {
    return $this->getConfigVars($name);
  }
  /**
   * load configuration values
   *
   * @param string $file
   * @param string $section
   * @param string $scope
   */
  public function config_load($file, $section = null, $scope = 'global')
  {
    $this->ConfigLoad($file, $section, $scope);
  }
  /**
   * return a reference to a registered object
   *
   * @param string $name
   *
   * @return object
   */
  public function get_registered_object($name)
  {
    return $this->getRegisteredObject($name);
  }
  /**
   * clear configuration values
   *
   * @param string $var
   */
  public function clear_config($var = null)
  {
    $this->clearConfig($var);
  }
  /**
   * trigger Smarty error
   *
   * @param string $error_msg
   * @param integer $error_type
   */
  public function trigger_error($error_msg, $error_type = E_USER_WARNING)
  {
    trigger_error("Smarty error: $error_msg", $error_type);
  }
}
/**
 * Smarty {php}{/php} block function
 *
 * @param array  $params  parameter list
 * @param string $content contents of the block
 * @param object $template template object
 * @param boolean &$repeat repeat flag
 *
 * @return string content re-formatted
 */
function smarty_php_tag($params, $content, $template, &$repeat)
{
  eval($content);
  return '';
}

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

PHP 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
php与paypal整合方法
Nov 28 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
php封装的smarty类完整实例
Oct 19 #PHP
PHP内存缓存功能memcached示例
Oct 19 #PHP
PHP实现上传图片到 zimg 服务器
Oct 19 #PHP
php通过会话控制实现身份验证实例
Oct 18 #PHP
利用php_imagick实现复古效果的方法
Oct 18 #PHP
php封装的page分页类完整实例
Oct 18 #PHP
php封装的单文件(图片)上传类完整实例
Oct 18 #PHP
You might like
第三节 定义一个类 [3]
2006/10/09 PHP
优化PHP代码的53条建议
2008/03/27 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php获取错误信息的方法
2015/07/17 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
flexigrid 参数说明
2010/11/23 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
Python ATM功能实现代码实例
2020/03/19 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
爱我中华演讲稿
2014/05/20 职场文书
村创先争优活动总结
2014/08/28 职场文书
公务员处分决定书
2015/06/25 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python