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