php封装的smartyBC类完整实例

5年以前  |  阅读数:589 次  |  编程语言:PHP 

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Yii2汉字转拼音类的实例代码
Python 2与Python 3版本和编码的对比
php+ajax+json 详解及实例代码
php封装的page分页类完整实例
PHP设计模式之工厂模式与单例模式
php数组合并array_merge()函数使用注意事项
PHP实现简单爬虫的方法
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧