2013-10-11 90 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