php封装的smartyBC类完整实例
本文实例讲述了php封装的smartyBC类。分享给大家供大家参考,具体如下:
<?php
/**
*Project:Smarty:thePHPcompilingtemplateengine
*File:SmartyBC.class.php
*SVN:$Id:$
*Thislibraryisfreesoftware;youcanredistributeitand/or
*modifyitunderthetermsoftheGNULesserGeneralPublic
*LicenseaspublishedbytheFreeSoftwareFoundation;either
*version2.1oftheLicense,or(atyouroption)anylaterversion.
*Thislibraryisdistributedinthehopethatitwillbeuseful,
*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNU
*LesserGeneralPublicLicenseformoredetails.
*YoushouldhavereceivedacopyoftheGNULesserGeneralPublic
*Licensealongwiththislibrary;ifnot,writetotheFreeSoftware
*Foundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA
*Forquestions,help,comments,discussion,etc.,pleasejointhe
*Smartymailinglist.Sendablanke-mailto
*smarty-discussion-subscribe@googlegroups.com
*
*@linkhttp://www.smarty.net/
*@copyright2008NewDigitalGroup,Inc.
*@authorMonteOhrt<monteatohrtdotcom>
*@authorUweTews
*@authorRodneyRehm
*@packageSmarty
*/
/**
*@ignore
*/
require_once(dirname(__FILE__).'/Smarty.class.php');
/**
*SmartyBackwardCompatabilityWrapperClass
*
*@packageSmarty
*/
classSmartyBCextendsSmarty
{
/**
*Smarty2BC
*
*@varstring
*/
public$_version=self::SMARTY_VERSION;
/**
*InitializenewSmartyBCobject
*
*@paramarray$optionsoptionstosetduringinitialization,e.g.array('forceCompile'=>false)
*/
publicfunction__construct(array$options=array())
{
parent::__construct($options);
//register{php}tag
$this->registerPlugin('block','php','smarty_php_tag');
}
/**
*wrapperforassign_by_ref
*
*@paramstring$tpl_varthetemplatevariablename
*@parammixed&$valuethereferencedvaluetoassign
*/
publicfunctionassign_by_ref($tpl_var,&$value)
{
$this->assignByRef($tpl_var,$value);
}
/**
*wrapperforappend_by_ref
*
*@paramstring$tpl_varthetemplatevariablename
*@parammixed&$valuethereferencedvaluetoappend
*@paramboolean$mergeflagifarrayelementsshallbemerged
*/
publicfunctionappend_by_ref($tpl_var,&$value,$merge=false)
{
$this->appendByRef($tpl_var,$value,$merge);
}
/**
*clearthegivenassignedtemplatevariable.
*
*@paramstring$tpl_varthetemplatevariabletoclear
*/
publicfunctionclear_assign($tpl_var)
{
$this->clearAssign($tpl_var);
}
/**
*Registerscustomfunctiontobeusedintemplates
*
*@paramstring$functionthenameofthetemplatefunction
*@paramstring$function_implthenameofthePHPfunctiontoregister
*@parambool$cacheable
*@parammixed$cache_attrs
*/
publicfunctionregister_function($function,$function_impl,$cacheable=true,$cache_attrs=null)
{
$this->registerPlugin('function',$function,$function_impl,$cacheable,$cache_attrs);
}
/**
*Unregisterscustomfunction
*
*@paramstring$functionnameoftemplatefunction
*/
publicfunctionunregister_function($function)
{
$this->unregisterPlugin('function',$function);
}
/**
*Registersobjecttobeusedintemplates
*
*@paramstring$objectnameoftemplateobject
*@paramobject$object_implthereferencedPHPobjecttoregister
*@paramarray$allowedlistofallowedmethods(empty=all)
*@paramboolean$smarty_argssmartyargumentformat,elsetraditional
*@paramarray$block_methodslistofmethodsthatareblockformat
*
*@throwsSmartyException
*@internalparamarray$block_functslistofmethodsthatareblockformat
*/
publicfunctionregister_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);
}
/**
*Unregistersobject
*
*@paramstring$objectnameoftemplateobject
*/
publicfunctionunregister_object($object)
{
$this->unregisterObject($object);
}
/**
*Registersblockfunctiontobeusedintemplates
*
*@paramstring$blocknameoftemplateblock
*@paramstring$block_implPHPfunctiontoregister
*@parambool$cacheable
*@parammixed$cache_attrs
*/
publicfunctionregister_block($block,$block_impl,$cacheable=true,$cache_attrs=null)
{
$this->registerPlugin('block',$block,$block_impl,$cacheable,$cache_attrs);
}
/**
*Unregistersblockfunction
*
*@paramstring$blocknameoftemplatefunction
*/
publicfunctionunregister_block($block)
{
$this->unregisterPlugin('block',$block);
}
/**
*Registerscompilerfunction
*
*@paramstring$functionnameoftemplatefunction
*@paramstring$function_implnameofPHPfunctiontoregister
*@parambool$cacheable
*/
publicfunctionregister_compiler_function($function,$function_impl,$cacheable=true)
{
$this->registerPlugin('compiler',$function,$function_impl,$cacheable);
}
/**
*Unregisterscompilerfunction
*
*@paramstring$functionnameoftemplatefunction
*/
publicfunctionunregister_compiler_function($function)
{
$this->unregisterPlugin('compiler',$function);
}
/**
*Registersmodifiertobeusedintemplates
*
*@paramstring$modifiernameoftemplatemodifier
*@paramstring$modifier_implnameofPHPfunctiontoregister
*/
publicfunctionregister_modifier($modifier,$modifier_impl)
{
$this->registerPlugin('modifier',$modifier,$modifier_impl);
}
/**
*Unregistersmodifier
*
*@paramstring$modifiernameoftemplatemodifier
*/
publicfunctionunregister_modifier($modifier)
{
$this->unregisterPlugin('modifier',$modifier);
}
/**
*Registersaresourcetofetchatemplate
*
*@paramstring$typenameofresource
*@paramarray$functionsarrayoffunctionstohandleresource
*/
publicfunctionregister_resource($type,$functions)
{
$this->registerResource($type,$functions);
}
/**
*Unregistersaresource
*
*@paramstring$typenameofresource
*/
publicfunctionunregister_resource($type)
{
$this->unregisterResource($type);
}
/**
*Registersaprefilterfunctiontoapply
*toatemplatebeforecompiling
*
*@paramcallable$function
*/
publicfunctionregister_prefilter($function)
{
$this->registerFilter('pre',$function);
}
/**
*Unregistersaprefilterfunction
*
*@paramcallable$function
*/
publicfunctionunregister_prefilter($function)
{
$this->unregisterFilter('pre',$function);
}
/**
*Registersapostfilterfunctiontoapply
*toacompiledtemplateaftercompilation
*
*@paramcallable$function
*/
publicfunctionregister_postfilter($function)
{
$this->registerFilter('post',$function);
}
/**
*Unregistersapostfilterfunction
*
*@paramcallable$function
*/
publicfunctionunregister_postfilter($function)
{
$this->unregisterFilter('post',$function);
}
/**
*Registersanoutputfilterfunctiontoapply
*toatemplateoutput
*
*@paramcallable$function
*/
publicfunctionregister_outputfilter($function)
{
$this->registerFilter('output',$function);
}
/**
*Unregistersanoutputfilterfunction
*
*@paramcallable$function
*/
publicfunctionunregister_outputfilter($function)
{
$this->unregisterFilter('output',$function);
}
/**
*loadafilterofspecifiedtypeandname
*
*@paramstring$typefiltertype
*@paramstring$namefiltername
*/
publicfunctionload_filter($type,$name)
{
$this->loadFilter($type,$name);
}
/**
*clearcachedcontentforthegiventemplateandcacheid
*
*@paramstring$tpl_filenameoftemplatefile
*@paramstring$cache_idnameofcache_id
*@paramstring$compile_idnameofcompile_id
*@paramstring$exp_timeexpirationtime
*
*@returnboolean
*/
publicfunctionclear_cache($tpl_file=null,$cache_id=null,$compile_id=null,$exp_time=null)
{
return$this->clearCache($tpl_file,$cache_id,$compile_id,$exp_time);
}
/**
*cleartheentirecontentsofcache(alltemplates)
*
*@paramstring$exp_timeexpiretime
*
*@returnboolean
*/
publicfunctionclear_all_cache($exp_time=null)
{
return$this->clearCache(null,null,null,$exp_time);
}
/**
*testtoseeifvalidcacheexistsforthistemplate
*
*@paramstring$tpl_filenameoftemplatefile
*@paramstring$cache_id
*@paramstring$compile_id
*
*@returnboolean
*/
publicfunctionis_cached($tpl_file,$cache_id=null,$compile_id=null)
{
return$this->isCached($tpl_file,$cache_id,$compile_id);
}
/**
*clearalltheassignedtemplatevariables.
*/
publicfunctionclear_all_assign()
{
$this->clearAllAssign();
}
/**
*clearscompiledversionofspecifiedtemplateresource,
*orallcompiledtemplatefilesifoneisnotspecified.
*Thisfunctionisforadvanceduseonly,notnormallyneeded.
*
*@paramstring$tpl_file
*@paramstring$compile_id
*@paramstring$exp_time
*
*@returnbooleanresultsof{@linksmarty_core_rm_auto()}
*/
publicfunctionclear_compiled_tpl($tpl_file=null,$compile_id=null,$exp_time=null)
{
return$this->clearCompiledTemplate($tpl_file,$compile_id,$exp_time);
}
/**
*Checkswhetherrequestedtemplateexists.
*
*@paramstring$tpl_file
*
*@returnboolean
*/
publicfunctiontemplate_exists($tpl_file)
{
return$this->templateExists($tpl_file);
}
/**
*Returnsanarraycontainingtemplatevariables
*
*@paramstring$name
*
*@returnarray
*/
publicfunctionget_template_vars($name=null)
{
return$this->getTemplateVars($name);
}
/**
*Returnsanarraycontainingconfigvariables
*
*@paramstring$name
*
*@returnarray
*/
publicfunctionget_config_vars($name=null)
{
return$this->getConfigVars($name);
}
/**
*loadconfigurationvalues
*
*@paramstring$file
*@paramstring$section
*@paramstring$scope
*/
publicfunctionconfig_load($file,$section=null,$scope='global')
{
$this->ConfigLoad($file,$section,$scope);
}
/**
*returnareferencetoaregisteredobject
*
*@paramstring$name
*
*@returnobject
*/
publicfunctionget_registered_object($name)
{
return$this->getRegisteredObject($name);
}
/**
*clearconfigurationvalues
*
*@paramstring$var
*/
publicfunctionclear_config($var=null)
{
$this->clearConfig($var);
}
/**
*triggerSmartyerror
*
*@paramstring$error_msg
*@paraminteger$error_type
*/
publicfunctiontrigger_error($error_msg,$error_type=E_USER_WARNING)
{
trigger_error("Smartyerror:$error_msg",$error_type);
}
}
/**
*Smarty{php}{/php}blockfunction
*
*@paramarray$paramsparameterlist
*@paramstring$contentcontentsoftheblock
*@paramobject$templatetemplateobject
*@paramboolean&$repeatrepeatflag
*
*@returnstringcontentre-formatted
*/
functionsmarty_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程序设计有所帮助。