Zend Framework 整合 Smarty 模板视图
来源:互联网 发布:美国精神病人 知乎 编辑:程序博客网 时间:2024/04/29 06:07
有时我们只是用到 一个框架就可以了,也许这样整合就是为了某些方面的方便?
建立 PHP 文件 Smarty.php
内容如下:
<?phprequire_once('Smarty/Smarty.class.php');require_once('Zend/View/Interface.php');/*Smarty 模板兼容类Author: smartly@live.com*/class Zend_View_Smarty implements Zend_View_Interface{/*** Smarty object* @var Smarty*/protected $_smarty;/*** Constructor** @param string $tmplPath* @param array $extraParams* @return void*/public function __construct($tmplPath = null, $extraParams = array()){$this->_smarty = new Smarty;if (null !== $tmplPath) {$this->setScriptPath($tmplPath);}foreach ($extraParams as $key => $value) {$this->_smarty->$key = $value;}}/*** Return the template engine object ** @return Smarty*/public function getEngine(){return $this->_smarty;}/*** Set the path to the templates** @param string $path The directory to set as the path.* @return void*/public function setScriptPath($path){if (is_readable($path)) {$this->_smarty->template_dir = $path;return;}throw new Exception('Invalid path provided');}/*** Retrieve the current template directory** @return string*/public function getScriptPaths(){return array($this->_smarty->template_dir);}/*** Alias for setScriptPath** @param string $path* @param string $prefix Unused* @return void*/public function setBasePath($path, $prefix = 'Zend_View'){return $this->setScriptPath($path);}/*** Alias for setScriptPath** @param string $path* @param string $prefix Unused* @return void*/public function addBasePath($path, $prefix = 'Zend_View'){return $this->setScriptPath($path);}/*** Assign a variable to the template** @param string $key The variable name.* @param mixed $val The variable value.* @return void*/public function __set($key, $val){$this->_smarty->assign($key, $val);}/*** Retrieve an assigned variable** @param string $key The variable name.* @return mixed The variable value.*/public function __get($key){return $this->_smarty->get_template_vars($key);}/*** Allows testing with empty() and isset() to work** @param string $key* @return boolean*/public function __isset($key){return (null !== $this->_smarty->get_template_vars($key));}/*** Allows unset() on object properties to work** @param string $key* @return void*/public function __unset($key){$this->_smarty->clear_assign($key);}/*** Assign variables to the template** Allows setting a specific key to the specified value, OR passing an array* of key => value pairs to set en masse.** @see __set()* @param string|array $spec The assignment strategy to use (key or array of key* => value pairs)* @param mixed $value (Optional) If assigning a named variable, use this* as the value.* @return void*/public function assign($spec, $value = null){if (is_array($spec)) {$this->_smarty->assign($spec);return;}$this->_smarty->assign($spec, $value);}/*** Clear all assigned variables** Clears all variables assigned to Zend_View either via {@link assign()} or* property overloading ({@link __get()}/{@link __set()}).** @return void*/public function clearVars(){$this->_smarty->clear_all_assign();}/*** Processes a template and returns the output.** @param string $name The template to process.* @return string The output.*/public function render($name){return $this->_smarty->fetch($name);}/*** 用于兼容 smarty 的 display 方法*/public function display($resource_name, $cache_id = null, $compile_id = null) {return $this->_smarty->display($resource_name, $cache_id, $compile_id);}/*** 用于兼容 smarty 的 fetch 方法*/public function fetch($resource_name, $cache_id = null, $compile_id = null) {return $this->_smarty->fetch($resource_name, $cache_id, $compile_id);}}
使用的时候可以这样调用代码:
require_once 'Zend/View/Smarty.php';$view = new Zend_View_Smarty(null, array('template_dir' => ROOT_PATH . "/templates",'compile_dir' => ROOT_PATH . "/templates_c",'cache_dir' => ROOT_PATH . "/tmp",'left_delimiter' => "<!--{",'right_delimiter' => "}-->",));$view->assign('test', 'Hello Smarty');$view->display('index/smarty.tpl');
代码部分转自 : http://hi.baidu.com/baijunhui/blog/item/84b25f239bba1546935807b9.html
以上内容来自技术博客:http://hi.baidu.com/new/cuitaiwu,在此感谢!
- Zend Framework 整合 Smarty 模板视图
- Zend Framework+Smarty 整合
- Zend Framework 1.10.x 多模块整合smarty模板
- Zend Framework整合smarty方法
- Zend Framework整合smarty方法
- Zend Framework 与Smarty 的完美整合!
- Zend Framework 整合Smarty 的方法
- Zend Framework+Smarty 整合 (插件)
- Zend Framework 1.10.x 多模块 多引导设置 整合smarty模板
- [转]最原始的Zend Framework整合Smarty简易方法
- PHP Yaf 整合 Zend framework 1 和 smarty 2
- Zend Framework+smarty应用
- Zend Framework+smarty+linux
- Zend Framework教程-Zend_View集成Smarty模板系统
- Zend Framework + Smarty 应用实例
- INTEGRATING SMARTY WITH THE ZEND FRAMEWORK
- Integrating Smarty with the Zend Framework
- Integrating Smarty with the Zend Framework Travello_View_Smarty
- Linux Samba服务器架构
- vc中ifstream ofstream不能读取带有中文路径
- ArcCatalog的Spatial Database Connection设置
- VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
- 计算机编程优秀书籍电子版共享(持续更新……)
- Zend Framework 整合 Smarty 模板视图
- lua脚本编程
- 为程序开发人员量身定制的12个目标
- Android Google天气 解析xml 显示中文
- 针对BatchPreparedStatementSetter的代码
- Linux NFS服务器配置
- ajax请求示例
- 关于java中Pattern.compile函数的相关解释
- Linux SSH服务器架构