Symfony是一個基于MVC模式的面向對象的PHP5框架。Symfony允許在一個web應用中分離事務控制,服務邏輯和表示層。
簡單的模板功能symfony是一個開源的PHP Web框架。基于最佳Web開發實踐,已經有多個網站完全采用此框架開發,symfony的目的是加速Web應用的創建與維護。
同時,它還包含了很多工具和類用以縮短開發復雜的網絡應用的時間。
它的特點如下:
簡單的模板功能
緩存管理
自定義URLs
搭建了一些基礎模塊
多語言與I18N支持
采用對象模型與MVC分離
Ajax支持
適用于企業應用開發。
一個框架結構在編程語言之上加入了新的機制,并且這些機制能夠為許多特定的目標自動提供一些開發模式。一個框架結構同樣為編碼增加了結構,并且促使程序員編出更好、更易讀的、有持續性的代碼。一個框架結構能讓編程變得更加簡單,因為它把復雜的程序封裝成了簡明的陳述。
一個框架的發展通常是以它所使用的語言所延伸出來的。一個php5框架是由一系列的用php5寫成的文件組成的。
一個框架將為應用劃分出層次。從整體上來說,它可以將應用分為三個層次:
◆表現邏輯層(presentation logic) 用于處理用戶與軟件之間的交互
◆數據源邏輯層(data source logic) 提供了一個數據庫同其他數據提供者的聯系通道。
◆范圍邏輯層(domain logic),或者叫事務邏輯層(business logic),這是剩余的部分。它包括關于輸入的計算、處理表現層中的數據,以及根據從表現層收到的指令分派調度數據源邏輯層。
網絡應用框架致力于促進網絡應用的開發(websites,intranets,等等)。建立一個基本的動態網站可以從現有的編程語言中輕易的實現,而PHP的知名就是由于它的簡易性被廣泛的應用。只需要php,你就可以查詢數據庫、管理會話(session,cookies)、訪問服務器端文件等等。而當你需要構建一個更加復雜的站點,當事務邏輯大大的增加了用于維護的編碼量的時候,你就需要一個網絡應用的框架出現了。
無論你是一個php5的專家還是一個在網絡應用編程方面的新手都沒有問題,影響你決定的最主要因素是你項目的大小。
如果你只是想要開發一個簡易的5-10頁的站點,只需要有限的訪問數據庫和幾乎不考慮性能、可用性或文檔,那么你只需要單獨使用PHP。你將不會從網絡應用的框架結構的特征中獲的太多的益處,使用面向對象或MVC模式只會使你的開發變慢。Symfony運行在一個只有CGI支持的共享主機上將不會高效優異的運行。
另一方面,如果你開發大型的web應用,其中有大量的事務邏輯,那么單獨使用PHP是不夠的。如果你計劃將來維護和擴展你的應用,你需要編寫輕量級、易讀的和高性能的的代碼。如果你想直接使用最友好的用戶交互界面(AJAX),你不能只寫上數百行的Javascrīpt代碼。如果你想享受并且快速的開發,那么單獨使用PHP將是令人失望的。介于上述這些原因,symfony非常適合你。
當然,如果你是一個專業的web開發人員,你已經知道了web應用框架的所有優點,并且你需要一個成熟的,具有詳細文檔和一個大的團體支持。那么不要再猶豫,symfony就是你的解決方案。