php类的封装,php封装的smartyBC类完整实例

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

/**

* 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

* @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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值