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