PHPEye开源社区 » Zend Framework 使用讨论 » Zend Framework与Smarty模板引擎集成的办法
《Programming PHP》第二版上市
2007-6-24 22:26 kylingood
Zend Framework与Smarty模板引擎集成的办法

今晚刚配好zendframework。想问问朋友有没有玩过让ZF和Smarty组合一起。希望朋友有时间的话给的点思路~~~~谢谢~!~!~

[[i] 本帖最后由 Haohappy 于 2007-6-27 00:44 编辑 [/i]]

2007-6-25 11:54 wanghaozi
[url]http://www.phpeye.com/bbs/viewthread.php?tid=64&extra=page%3D1[/url] 这个例子就是用smarty 做了view

2007-6-25 15:08 kylingood
闷死了。看不明白他是怎么搞的。就是说他的路径有点让人晕!~~~有没有人有这方面的教程。

2007-6-25 15:49 蒲公英
建议你先了解了解ZF

2007-6-26 00:00 gbbnvc
:o :o :o

2007-6-26 00:05 smallcat
你最好先看看ZF的Action Helpers和View Scripts,并且在View Scripts中有ZF中集成SMARTY的方法.

2007-6-26 11:11 kylingood
[quote]原帖由 [i]蒲公英[/i] 于 2007-6-25 15:49 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=321&ptid=72][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
建议你先了解了解ZF [/quote]


谢谢前辈你的建议。你在这里发的贴子。我按上面的配好了。现在还没看明白和SMATRY的结合。呵呵。。人太笨了。。。


还要谢谢楼上各位热心的兄弟!~!~!

2007-6-26 12:27 蒲公英
咱都是初学者都需要经过这个过程,别着急 :)

2007-6-26 22:53 wps2000
为什么要结合了?
Zend Framework是Zend Framework,Smarty是Smarty,按照ZF的规范使用Smarty模板,就是这样啊?
结合有n种方法,如果你不嫌弃麻烦的话,在每个Action中的$tpl = new Smarty一次也行啊!(事实上就是难看点嘛:lol )

关键不是结合的问题,是理解ZF和Smarty各自的问题,如果不理解的话,今天会遇到与Smarty结合的问题,明天又遇到与Pear结合的问题

2007-6-27 00:38 Haohappy
-_-楼上这样回答对新手似乎有误导。

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

而且每个公司有自己习惯的技术体系,Smarty还是有很多人用的,实现ZF和Smarty的结合很有意义。

你说的方式是可以的,就是太土了,嘿嘿,而且容易留下冗余代码。

建议楼主看看这篇文章:
[b]Integrating Smarty with the Zend Framework[/b]
[url]http://devzone.zend.com/node/view/id/120[/url]

还有这篇文章,更详细,有完整的代码:
[url]http://www.phpinsider.com/smarty-forum/viewtopic.php?t=7865[/url]

[[i] 本帖最后由 Haohappy 于 2007-6-27 00:43 编辑 [/i]]

2007-6-27 08:19 kylingood
哈哈。。。。没想到在这里得到老大细心的指导。受宠若惊!~~真是非常感谢谢老大和回贴给我意见的朋友。:lol :loveliness:

2007-6-27 15:30 wps2000
[quote]原帖由 [i]Haohappy[/i] 于 2007-6-27 00:38 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=331&ptid=72][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
-_-楼上这样回答对新手似乎有误导。

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


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

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

2007-7-5 11:53 kylingood
怎么没有人回个贴啊。一起来讨论啊!~~~:lol :lol

2007-7-5 16:04 kylingood
以下这文章是转自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);
...

[/php]


[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);
    }
}
[/php]

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

2007-7-31 21:46 kylingood
顶~~~~~~~~

2007-8-16 17:36 inmagic
发错地方了

2007-10-25 23:37 abin30
一直排斥smarty 的一个原因就是它 太庞大了,太复杂了。。。 但实话说,本人没有具体用过,只不过看到那么多文件,直接放弃了。

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

2008-1-1 01:21 bc1998
我现在看了好多,但是一直没发现有人用接口方式,这是为什么呢?接口方式有什么欠缺呢?
另外我想问结合smarty之后如何在模板页中继续使用zend_view_helper呢?

2008-1-2 08:48 ringtail
我有单独用过smarty,觉得挺好用的,不复杂,而且省了很多事情。

2008-1-14 22:30 Cykit
[quote]原帖由 [i]Haohappy[/i] 于 2007-6-27 00:38 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=331&ptid=72][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
-_-楼上这样回答对新手似乎有误导。

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


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

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.