2008-09-03 62 views
19

一点背景信息
最近我一直在寻找一些PHP框架,并且它降到了两个。 Zend Framework或CodeIgniter。Smarty集成到Code Igniter框架中

我更喜欢CodeIgniter,因为它的设计简单。这是非常裸露的骨头,它只是保持简单。我不喜欢的事情是弱模板系统。模板系统对我很重要,因为我将与另一位设计师合作。能够给他一个好的模板系统是一个很大的好处。

由于内置了更好的模板系统,Zend是第二选择。与CodeIgniter相比,Zend与众不同。它强调“模块之间的松散耦合”,但是是一个更大的框架。我不喜欢觉得我有许多事情在我从未使用过的引擎盖下运行。在我看来,这是不必要的开销,所以我考虑将模板系统放入CodeIgniter:Smarty。

问题:将Smarty整合到CodeIgniter中的过程有多简单/困难?从我对CodeIgniter文档的初始扫描中,我可以看到框架的布局很容易理解,而且我预计没有问题。我想知道是否有人之前使用过它,因此知道我所经历的任何“陷阱”,这会使得这难以应付或不可能实现。我也想知道这是否是件好事。 CodeIgniter中的模板系统是否足以正常使用?除了Smarty之外,是否还有其他模板模块适合CodeIgniter?我更喜欢Zend Framework吗?这里发明了什么车轮吗?感谢您的帮助!

+0

正如其他人所说,例如Zend_View组件本身是非常强大和可扩展的[有助手等]。你不需要Smarty。另外,Smarty是非常重的PHP4代码,一般来说你想避免。除此之外,使用任何您更舒适的框架。 – Till 2008-09-27 15:28:05

回答

1

我做了一个快速谷歌搜索,发现如下: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/

如果设计师不熟悉Smarty的,我认为这是几乎一样的,如果你使用现有的CodeIgniter的模板系统(其中叶所有事实上都是PHP)。这也取决于手头项目的复杂性。

您还可以使用Zend Framework来拦截Smarty。这比使用CodeIgniter更复杂,但已经有一篇关于如何在ZF文档中完成这项工作的入门书。 http://framework.zend.com/manual/en/zend.view.scripts.html在网上加上大量的教程。

在我看来,它几乎是一样的,你可以使用纯PHP或Smarty作为你的模板“引擎”,所以它取决于项目。另外,比较一个拥有丰富经验并且已经拥有一个视图助手库的开发者,所以她使用纯PHP,而不是对PHP一无所知但对Smarty有丰富经验的设计师。有时候,决定必须基于谁将要做什么。

2

略OT,希望你不要介意...

我是Zend Framework的用户,我认为这是值得一说的是,松耦合意味着你不必包括你的任何文件不积极使用。希望这会消除您对不必要开销的担忧。

随着最近发布的ZF中增加了布局,它的模板很难排除故障......并且Favio提到它完全可插入。我使用ZF越多,我越喜欢它;他们以我会做他们的方式来做事情!

3

对不起复活了一个老问题 - 但没有答案被标记为“接受”。

有一个名为“模板”你想库,确实让您只需使用任何模板解析器的一个伟大的工作:

Template CI Library - Parsers

的语法是很容易集成到您的CI应用聪明的整合点。

0

将Smarty集成到CodeIgniter中?这是一件轻而易举的事! template system in CodeIgniter是非常基本的。

按照CI 3这些步骤Smarty的3:

下载笨3

下载的Smarty 3,并把它的内容在 '应用程序/ THIRD_PARTY /智者' 文件夹

创建“Custom_smarty.php “文件‘应用程序/库’,并添加以下代码:

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

require_once(APPPATH.'third_party/smarty/Smarty.class.php'); 

class Custom_smarty extends Smarty { 

    function __construct() 
    { 
    parent::__construct(); 
    $this->setTemplateDir(APPPATH.'views/templates/'); 
    $this->setCompileDir(APPPATH.'views/templates_c/'); 
    } 
} 
?> 

创建‘模板’&‘templates_c’倍里面“申请/意见”文件夹ERS

创建“应用程序/视图/模板”文件夹中简单的“test.tpl”文件

打开在“应用程序/配置”文件夹,并添加“autoload.php”:

$autoload['libraries'] = array('custom_smarty'); 

和控制器内:$this->custom_smarty->display('test.tpl');

如果您正在本地主机上设置的权限:sudo chmod -R 777 templates_c。 Otherwhise与您的托管服务联系,如果您发现错误无法写入文件。首先确保templates_c文件夹存在。

否则,您可以使用另一种模板引擎就像嫩枝。