2008-09-03 81 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文件夾存在。

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