标题: Zend Framework与Smarty模板引擎集成的办法
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 45
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2007-6-27 08:19  资料  短消息  加为好友 
哈哈。。。。没想到在这里得到老大细心的指导。受宠若惊!~~真是非常感谢谢老大和回贴给我意见的朋友。

顶部
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-6-27 15:30  资料  短消息  加为好友 


QUOTE:
原帖由 Haohappy 于 2007-6-27 00:38 发表
-_-楼上这样回答对新手似乎有误导。

使用Smarty是有好处的。因为Zend_View直接使用PHP语法,如果项目需要允许用户自行设计模板时,就可能存在安全问题。而使用第三方的模板引擎,比如Smarty,只要把PHP代码功能关闭,就很安全 ...

貌似这个年代流行把简单的玩意儿弄得复杂

以前那种 Zend_Registry::set、以及setParam('Smarty', new Smarty)的方法多好学啊,有容易理解





顶部
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 45
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2007-7-5 11:53  资料  短消息  加为好友 
怎么没有人回个贴啊。一起来讨论啊!~~~

顶部
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 45
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2007-7-5 16:04  资料  短消息  加为好友 
以下这文章是转自PHPCHINA一位名为xgwork (Mallec) 的朋友的文章。


Z F 结合smarty的用法探讨


有2个方法
1.用接口的。具体大家可看手册上有.
2.用对象的方法。

我个人喜欢用对象的方法,

[Copy to clipboard] [ - ]PHP代码:

index.php

PHP代码如下:
....

$views  =  new Smarty();
$views->compile_dir  'view/templates_c';
$views->cache_dir 'view/cache_c';
$views->template_dir "view/templates/$setting[templet]";

/*dynamic为不缓存函数块*/
function smarty_block_dynamic($param,$content,&$views)
    {
    return 
$content;
    } 
$views->register_block('dynamic','smarty_block_dynamic',false);
/*end*/

Zend_Registry::set('views'$views);
...



[Copy to clipboard] [ - ]PHP代码:

PHP代码如下:
class IndexController extends Zend_Controller_Action
{
    private 
$views;   /*模板对象*/
    
private $Mallec;  /*Mallec会话组*/
    
public    function init()
    {
        
/*拿回注册过的对象,返回给views*/
        
$this->views Zend_Registry::get('views');
        
/*变量DIR为模板实际路径*/
        
$this->views->assign('DIR',$this->_request->getBaseUrl().'/'.$this->views->template_dir);
                   
/*设置缓存*/
        
$this->views->caching true;
        
/*会话组*/
        
$mallec_login = new Zend_Session_Namespace('mallec_login');
        
$this->Mallec $mallec_login->Mallec;
        
$this->views->assign('Mallec',$this->Mallec);
    }
}



[ 本帖最后由 kylingood 于 2008-1-23 16:31 编辑 ]

顶部
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 45
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2007-7-31 21:46  资料  短消息  加为好友 
顶~~~~~~~~

顶部
inmagic
新手上路
Rank: 1



UID 288
精华 0
积分 0
帖子 2
翻译 0
原创 0
阅读权限 10
注册 2007-8-16
状态 离线
发表于 2007-8-16 17:36  资料  短消息  加为好友 
发错地方了

顶部
abin30
新手上路
Rank: 1



UID 484
精华 0
积分 0
帖子 8
翻译 0
原创 0
阅读权限 10
注册 2007-10-25
状态 离线
发表于 2007-10-25 23:37  资料  短消息  加为好友 
一直排斥smarty 的一个原因就是它 太庞大了,太复杂了。。。 但实话说,本人没有具体用过,只不过看到那么多文件,直接放弃了。

现在不知道的是,使用Smarty 对系统的性能到底有多大的影响。

顶部
bc1998
新手上路
Rank: 1



UID 588
精华 0
积分 0
帖子 32
翻译 0
原创 0
阅读权限 10
注册 2007-11-24
状态 离线
发表于 2008-1-1 01:21  资料  短消息  加为好友 
我现在看了好多,但是一直没发现有人用接口方式,这是为什么呢?接口方式有什么欠缺呢?
另外我想问结合smarty之后如何在模板页中继续使用zend_view_helper呢?

顶部
ringtail
PHPEye Developer
Rank: 8Rank: 8



UID 3
精华 1
积分 10
帖子 9
翻译 9
原创 0
阅读权限 1
注册 2007-5-2
状态 离线
发表于 2008-1-2 08:48  资料  短消息  加为好友 
我有单独用过smarty,觉得挺好用的,不复杂,而且省了很多事情。

顶部
Cykit
新手上路
Rank: 1



UID 729
精华 0
积分 0
帖子 15
翻译 0
原创 0
阅读权限 10
注册 2008-1-14
状态 离线
发表于 2008-1-14 22:30  资料  短消息  加为好友 


QUOTE:
原帖由 Haohappy 于 2007-6-27 00:38 发表
-_-楼上这样回答对新手似乎有误导。

使用Smarty是有好处的。因为Zend_View直接使用PHP语法,如果项目需要允许用户自行设计模板时,就可能存在安全问题。而使用第三方的模板引擎,比如Smarty,只要把PHP代码功能关闭,就很安全 ...

我相信,大多用户根本就不知道HTML为何物,更何况让用户私用Smarty,让用户自行设计模板提供Smaty真的有意义吗?

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2009-1-10 06:10

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.495593 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver