Smarty

軟件截圖:
Smarty
軟件詳細信息:
版本: 3.1.5
上傳日期: 11 May 15
許可: 免費
人氣: 1

Rating: nan/5 (Total Votes: 0)

Smarty的實際上不是一個“模板引擎”,這將是更準確地描述為“模板/演示框架。”也就是說,它提供了程序員和模板設計者提供了豐富的工具來自動化任務的應用程序的表示層通常處理。我強調框架,因為Smarty的不是一個簡單的標籤替換模板引擎。雖然它也可以用於這樣的簡單的目的,它的重點是快速,無痛開發和部署應用程序的,同時保持高的性能,可擴展性,安全性和未來的增長。
所以對你Smarty的吧?什麼它歸結為是使用正確的工具的工作。如果你想簡單的變量替換,你可能想看看更簡單的東西,甚至推出自己的。如果你想要一個強大的模板框架與眾多的工具來幫助你為你的應用程序的發展未來,Smarty的可能是一個不錯的選擇。
為什麼要用它?
其中Smartys主要設計目標是促進應用程序代碼表示的分離。通常情況下,應用程序代碼中包含您的應用程序,編寫和維護的PHP代碼中的業務邏輯。這個碼由程序員保持。演示是您的內容被呈現給最終用戶,信息被寫入並保持在模板文件的方式。該模板由模板設計者維護。
在其最基本的功能,應用程序代碼收集的內容,並將其分配給模板引擎和顯示。內容可能是這樣的報紙文章的標題,標語,作者和身體。應用程序代碼沒有怎麼關注這個內容將在模板中呈現。模板設計者負責呈現。他們編輯模板文件,添加標記並把它完成。這通常需要像HTML標籤,級聯樣式表和模板引擎提供的其他工具。
這種模式有以下幾個目的:
)設計不能打破的應用程序代碼。他們可以亂用所有他們想要的模板,但代碼保持不變。該代碼會更嚴格,更安全,更易於維護。
)在模板中的錯誤被限制在Smartys錯誤處理例程,這使得它們作為簡單和直觀盡可能為設計師。
)同介紹其自己的層,設計人員可以修改或完全從零開始重新設計,所有這些都不脫離程序員介入。
)程序員不弄亂模板。它們可以去維護應用程序代碼,改變獲取內容的方式,使新的業務規則,等等,而不會干擾表示層。
)模板是什麼樣的最終輸出將是一個接近的表示,這是一個直觀的方法。設計師不在乎內容如何得來的模板。如果你有模板中多餘的數據,如SQL語句,這打破打開的應用程序代碼被意外刪除或改變由設計師的風險。
)你是不是打開你的服務器的任意PHP代碼的執行。 Smarty的內置了這樣的設計師不會破壞安全,無論是有意或無意的許多安全功能。他們只能做他們的模板局限於。
雖然應用程序代碼與表示分離,這並不一定意味著邏輯分離。應用程序代碼顯然有邏輯,但該模板可以基於所述條件,它僅用於介紹有邏輯。例如,如果設計者希望交替表行的顏色或大寫一些分配的內容,他們可以。這是表示邏輯,一些程序員不應該與關注。你是否經常有一些演示顯示在一列,然後你希望它在兩個或三個欄,因此應用程序代碼需要調整,以適應這一點?更好的辦法是分配在一個單一的陣列的內容,讓模板處理表現。這將簡化您的應用程序,並保持你的模板靈活。 Smarty的供應工具來處理這種情況。
這並不意味著Smarty的阻止你把應用邏輯的模板中,你必須有一點自律。下面是在模板中嵌入業務邏輯(這是正確的,可以避免如​​果在所有可能這樣做)的一個例子:
{如果$ smarty.session.user和($ user_type EQ“編輯”或$ user_type EQ“管理員”)}
<輸入類型=複選框名稱=編輯值=“Y”>修改
{/}如果
如果用戶登錄,他們要么是編輯或管理員的邏輯檢查,那麼他們可以編輯這個讓編輯框顯示出來。即邏輯屬於在應用程序代碼。該模板並不關心什麼憑據這個用戶,它只是需要知道是否顯示或不編輯框!因此,讓我們來看一個更合適的方法:
{如果$ edit_flag}
<輸入類型=複選框名稱=編輯值=“Y”>修改
{/}如果
它是由應用程序員來分配$ edit_flag,簡單和容易理解的模板中的變量。通過這種方式,模板不再依靠基礎數據結構。如果會話數據結構的格式不斷變化,沒有什麼需要在模板中進行調整。
現在讓我們來看幾個事情可以做的Smarty。有一件事可以做的是自定義的功能。這些標籤在模板中執行的特定任務。例如:
{html_image文件=“masthead.gif”}
在這裡,我們有一個叫做“html_image”功能。這個函數中的“文件”屬性給出的形象和做一切必要的工作,拿出了下面的HTML代碼:

圖像功能確實弄清楚的高度和寬度,並供給默認邊界標誌的瑣事。當然,你可以只使用模板來代替在靜態HTML標記,但此說明了如何自定義函數可以用於簡化一個非常常見的任務。設計者可以專注於設計和較少的技術的東西。此外,如果設計者決定在不同的大小標頭圖像下降,模板並不需要調整。
html_image是自帶的Smarty的功能。你也可以讓自己的自定義功能。這裡有什麼人可能看起來像另外一個例子:
{html_link TYPE =“文章”ID =“ABC123”文本=“火拿出酒店”}
這是利用所謂的“html_link”的自定義功能。它配備了下面的HTML代碼:
消防取出酒店
是什麼成就?為一體,設計者不需要與一個URL的一篇文章的格式予以關注。如果有一天程序員決定乾淨的東西了硬編碼的網址,會發生什麼,並從/display_article.php?id=abc123改變URL語法/藝術/ ABC123?我們將不得不修改每個模板一篇文章的URL。這是如何模板函數可以使模板更易於維護的另一個例子。
現在有些程序員和模板。早些時候有人提到,程序員有沒有關心什麼模板做的內容。從概念上講,這是真實的,但在現實世界裡,你不會指望模板設計者必須構造所有模板憑空。畢竟,業務邏輯確實確定哪些內容被分配到模板。所以,程序員通常會設置骨架模板設計者開始。這通常包含原始元素,如內容的變量和部分環路,也許一些簡單的標記標籤,使他們不開始在大混亂的內容。這裡是一個骨架模板來遍歷的文章的列表並在表中顯示它們的例子:


{節名稱=藝術圈= $}文章


{/部分}
{$文章[藝術] .headline}
{$文章[藝術] .date}
{$文章[藝術] .author}

輸出可能是這個樣子:







西部開拓史
1999年12月2日
約翰·韋恩
球隊輸球,教練退出
2002年2月2日
約翰·史密斯
美食烹飪
1954年1月23日
貝蒂克羅克

現在對於一些常見的問題:
在所有的為什麼要使用模板?什麼是如此艱難的寫作<?迴聲$稱號; ?而不是{$}標題>?
使事情更容易閱讀不是一個設計目標,但更多的副作用。使用模板有巨大的好處,其中許多已經在上面解釋。因為我們是在一個模板環境不管怎麼說,{$}標題比,尤其是當你開始看著它在長頁面的內容,所以這是很明顯的是,一個簡單的語法有助於使模板更容易閱讀和維護。
模板需要時間來分析,使應用程序慢得多。
這可能是在某些情況下真實的,但它的Smarty並不比執行一個PHP腳本慢。在模板的第一次執行,Smarty的轉換模板文件到PHP腳本(稱為模板編譯。)此後,PHP腳本僅僅是包括在內。還有一點,PHP加速器,你真正擁有以最小的開銷快速模板環境。
Smarty的太複雜了,怎麼能這麼快?
Smarty的核心是相當瘦考慮它是什麼能力。它的大部分功能在於插件。插件架構被設計成使得只有所需的插件是根據需要加載。有了這個框架,加入甚至數百個新的插件將不會影響性能。這使得Smarty的快速,可擴展性和靈活性。
Smarty的也有緩存功能,可以動態刷新,並保持在未緩存您喜歡的頁面的部分。高速緩存存儲的編譯模板的輸出,節省了需要執行它們在每次調用。
所有該談的加速器,如何Smarty的運行沒有一個?
實際上它運行得很好沒有之一。 Smarty的不需要的加速器,但模板文件本身將產生一個優勢,而這是唯一的Smarty(據我所知)。如果你沒有一個加速器,模板執行並不快,但通過任何手段,因為它們不被解析不慢!您還保留所有的其他好處和Smarty的特點。此外,由於加速器免費提供沒有真正不被使用一個藉口。他們會幫助提高性能與所有的PHP應用程序,Smarty的使用與否。
如何可以更容易維護?
有些事情無法解釋,但只有經歷。從演示文稿中的應用邏輯分離的好處可以強調也不過分。 Smarty的也有一些不錯的錯誤處理功能和一目了然內置調試控制台,所以你可以看到模板層次結構和賦值的變量。添加自定義功能的Smarty是因為他們丟棄在插件目錄,並提他們的模板中那樣容易。
的模板標籤不是基於XML的,我的編輯不喜歡它。
該{}分隔符只是默認情況下,他們很容易的HTML標籤中辨別。如果你不喜歡他們,改變你的分隔符或者更多的東西像XMLish也有很多用戶貢獻的用於Dreamweaver之類的,讓他們在貢獻區看看。
這是Smarty的概括地說,希望你可以把它添加到您的Web應用構建工具庫。要真正了解更多信息,請閱讀說明書從上到下,加入論壇,看看有什麼人都在討論

功能

  • 緩存:Smarty的提供細粒度的緩存功能來緩存所有的渲染網頁或部件,或留下部分未緩存。程序員可以註冊模板函數作為緩存或者非超高速緩存,緩存組到頁面邏輯單元更容易管理等。
  • 配置文件:Smarty的可分配從配置文件中拉出變量。模板設計者可以保持在一個位置共同多個模板值,而無需從程序員介入,和配置變量可以很容易地應用程序的編程和表示部分之間共享。
  • 安全:模板不包含PHP代碼。因此,模板設計者不釋放與PHP的全部功能,但功能的子集提供給他們從程序員(應用程序代碼。)
  • 易於使用和維護:網頁設計師面對的不是PHP代碼語法,而是一個易於使用的模板語法並不比普通的HTML不同。這些模板最終輸出的一個非常密切的代表,大大縮短了設計週期。
  • '變量:分配變量的內容可以很容易地在顯示時間與改性劑,如顯示在所有大寫調整,HTML轉義,格式化日期,截斷文本塊,添加字符之間的空格,再等等,這是通過不從編程器干預。
  • 模板函數:許多功能可用於模板設計器來處理,如生成HTML代碼段(下拉列表,表格,彈出窗口等),顯示來自在線模板等內容,遍歷內容數組任務,格式電子郵件輸出文本,但騎自行車的顏色等。
  • 過濾器:程序員可以完全控制模板輸出和編譯模板內容與預過濾器,後置濾波器和輸出濾波器
  • 資源:模板可以從任何數目的來源通過創建新的資源處理程序,然後使用它們的模板被拉
  • 插件:Smarty的幾乎每一個方面是通過使用插件來控制。他們一般都是作為拖放到他們的插件目錄,然後提他們的模板或使用它們的應用程序代碼一樣簡單。許多用戶社區的貢獻也可提供。 (見論壇和wiki的插件部分。)
  • 在附加組件:許多用戶社區貢獻附加組件可如分頁,表單驗證,下拉菜單,壓延日期選擇器等,這些工具可幫助加快開發週期,沒有必要重新發明輪子或調試代碼已經穩定,可以進行部署。 (看到論壇和wiki的附加軟件部分。)
  • 調試:Smarty的配備了一個內置的調試控制台以便模板設計者可以看到所有的賦值的變量和程序員可以調查模板渲染速度
  • 編譯:Smarty的模板編譯成幕後PHP代碼,消除了模板的運行時解析
  • 性能:Smarty的執行非常好,儘管其龐大的功能集。大部分的Smarty的功能在於被按需加載的插件。 Smarty的帶有眾多的演示工具,最大限度地減少應用程序代碼,從而更快,更不容易出錯的應用程序開發/部署。 Smarty模板被編譯到PHP內部(一次)文件,消除昂貴的模板文件掃描並利用了PHP操作碼加速器的速度。

什麼在此版本中是新的

  • 在恢復超全局訪問的變化,而是依靠USE_SUPER_GLOBALS的安全

什麼是2.6.23版本的新

  • 從{}數學公式反引號條(mohrt)

  • 存在,但模板時
  • 在拋出一個異常不可讀(mohrt)

什麼是版本2.6.22中的新

  • 在此版本解決了Smarty的2.6遇到了問題0.21版本和PHP 5.2 PCRE引擎錯誤。方法鏈接已被刪除,以避免錯誤。方法鏈將重新出現在Smarty的3。

顯影劑的其他軟件 New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

意見 Smarty

評論沒有發現
添加評論
打開圖片!