Smarty集成到Code Igniter框架中
一点背景信息:
最近,我一直在研究一些PHP框架,现在它归结为两个。 Zend框架或者CodeIgniter。
我更喜欢CodeIgniter,因为它设计简单。它是非常裸露的骨头,只是保持简单。我不喜欢的是薄弱的模板系统。模板系统对我来说很重要,因为我将与另一位设计师一起工作。能够为他提供良好的模板系统是一大优势。
Zend是第二个选择,因为它内置了更好的模板系统。尽管与CodeIgniter相比,Zend是另一种野兽。它强调"模块之间的松耦合",但它是一个更大的框架。我不想感到有很多事情在我从未使用过的引擎盖下运行。我认为这是不必要的开销,因此我考虑将模板系统放入CodeIgniter:Smarty。
问题:将Smarty集成到CodeIgniter中的过程有多容易/难?从对CodeIgniter文档的初步扫描中,我可以看到框架的布局很容易理解,并且我预计不会出现任何问题。我想知道以前是否有人使用过它,因此知道我们遇到的任何"陷阱"会使它变得比应实现或者不可能实现的难度更大。我也想知道这是否是一件好事。 CodeIgniter中的模板系统是否足以正常使用?除了Smarty之外,还有其他适用于CodeIgniter的模板模块吗?我最好使用Zend Framework吗?这里有没有发明轮子?谢谢帮助!
解决方案
回答
我做了一个快速的谷歌搜索,发现以下内容:
http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html
http://codeigniter.com/forums/viewthread/67127/
如果设计人员不熟悉Smarty,我认为它几乎与使用现有CodeIgniter模板系统(实际上将所有内容留给PHP)相同。它还取决于手头项目的复杂性。
我们也可以将Smarty与Zend Framework挂钩。它比CodeIgniter复杂得多,但是ZF文档中已经有关于如何精确执行此操作的入门文章。 http://framework.zend.com/manual/en/zend.view.scripts.html以及网上大量的教程。
我认为这几乎是相同的,我们可以使用纯PHP或者Smarty作为模板"引擎",因此它取决于项目。另外,将一个拥有丰富经验并已经拥有视图帮助程序库以便使用纯粹PHP的开发人员与一个对PHP一无所知但拥有Smarty丰富经验的设计人员进行比较。有时,决策必须基于谁去做。
回答
稍微加班,希望我们不要介意...
我是Zend Framework的用户,我认为值得一提的是,松散耦合意味着我们不需要包括任何未在使用中的文件。希望这可以消除我们对不必要的开销的担心。
ZF的最新版本中添加了布局元素,其模板确实很难过错……而且正如Favio所提到的,它是完全可插入的。我使用ZF的次数越多,我越喜欢它。他们以我会做的方式做事!
回答
很抱歉要复活一个旧问题,但尚未将所有答案标记为"已接受"。
有一个名为"模板"的库,它可以使我们几乎使用所需的任何模板解析器,都做得很好:
模板CI库V1.4.1
语法很容易集成到CI应用程序中,也很容易集成。
回答
签出此自定义CodeIgniter模板库。我已经在多个项目中使用过它,并且易于使用。我知道这篇文章已经很晚了,但是值得一试。
回答
似乎没有为这个问题选择答案,也没有提供最新的解决方案来与最新版本的Codeigniter(2.0)和最新版本的Smarty(3.0.5)一起使用。
该库允许我们将Smarty 3与Codeigniter 2.0一起使用,以便可以使用Smarty 3的特定功能,例如模板继承。
http://ilikekillnerds.com/2010/11/using-smarty-3-in-codeigniter-2-a-really-tiny-ci-library/