2013-10-11 86 views
0

我开始一个新网站,首次使用CodeIgniter。在视图中,有写的PHP代码。我正在考虑将显示代码完全分开,就像几年前我使用Smarty时那样。CodeIgniter + Smarty - 是否相关?

我发现的CodeIgniter提供了一个模板引擎:http://ellislab.com/codeigniter/user-guide/libraries/parser.html

但页面里面,我发现这样一个字条:

注:笨不要求你使用这个类,因为使用你的视图页面中的纯PHP可以让它们运行得更快一些。但是,有些开发人员喜欢使用模板引擎,如果他们与设计人员一起工作,他们会觉得使用PHP会遇到一些困惑。

所以,我想要一些帮助选择正确的事情。我应该使用纯PHP吗?当编码风格已经是MVC时,使用像这样的模板引擎会有什么好处?使用Smarty会更好吗,我已经知道了一点?

该网站将需要非常安全,速度非常快,大量的AJAX将被使用(我也在考虑安装websocket,但没有链接到当前的问题)。

感谢您的帮助!

+0

一般来说,使用模板系统分离问题很好,而且不需要随机的PHP与HTML打印混合。模板引擎成为应用程序瓶颈的可能性非常低。 –

+0

所以你会推荐使用一个,本地CI一个或Smarty? –

+0

CI的模板解析器与Smarty没有可比性,它们完全不同。无论如何,使用任何你想要的。 –

回答

1

如果你需要你的应用程序速度很快,那么你在选择Codeigniter方面有很大的启发,因为它是一个非常轻量级的框架,当不涉及缓存时,它将很容易地解决大多数速度问题。

有一种说法,除非需要,否则不应该缩放,我认为它在这里适用得非常好。除非您显示兆字节的数据,否则我看不出选择模板引擎会如何影响应用程序的整体速度。如果发生这种情况,您可以随时查看缓存某些响应/各种其他信息或第三方解决方案(即Gearman),这些可能现在已经过时了。

如果您想要了解新功能,请使用Codeigniter模板库;如果您需要快速开发某些内容,请使用您最熟悉的工具。作为一个优先事项,我喜欢Twig,而且它有一个CI实现,它被称为Twiggy:http://edmundask.github.io/codeigniter-twiggy/

至于安全性,我认为它不像企业级框架那样强大,比如Symfony或ZF2,这更加重视这一点。它们本身就是更完整的软件包,通过缓存,它们执行速度非常快,但它们的学习曲线更高。

更新:我的意思是,除非您显示大量数据,否则您不应该考虑模板引擎的速度,因为这会对您的页面渲染速度产生微不足道的影响。不要想象这是用户不会注意到的,因为在执行时间内0.0x的顺序并不明显。在这里查看一下SMARTY和Twig之间的对比:http://umumble.com/blogs/php/249/

Smarty的执行时间为0.058秒,而Twig的执行时间为0.083秒。模板化发动机总是承担额外的费用,他们的工作是让他们更容易开发,并且在与设计师合作时有助于解决问题。

+0

感谢您的回答!非常清楚。只有一件事你没有回答:为什么在这里没有任何缓存的情况下使用模板引擎呢,而CI的文档说它会变慢呢? 关于安全性,以及我将不得不仔细编码,我猜:) –

+0

@JeremyBelolo嘿男人,更新了我的答案。让我知道现在是否更清楚! –

+1

谢谢,实际上是更清楚。我想我会和Twig一起去的! –

1

如果你想使用模板引擎,我建议Twig。 http://twig.sensiolabs.org/

+0

它有什么比Smarty或CI的本地解决方案更好? –

+1

CI的本地解决方案仅仅是PHP,如果您想使用模板引擎,它根本就不是解决方案。 :) 枝条由SensioLabs - Symfony的创造者维护。它受到高度尊重,易于使用且速度非常快。作为个人偏好,我更喜欢Twig语法来Smarty的。 – Charlie