簡介web
Symfony2是一個基於PHP語言的Web開發框架,有着開發速度快、性能高等特色。但Symfony2的學習曲線也比 較陡峭,沒有經驗的初學者每每須要一些練習才能掌握其特性。數據結構
本文經過一個快速開發尋人平臺的實例向讀者介紹 Symfony2框架的一些核心功能和特色。經過閱讀本文,你能夠經過一些具體的例子瞭解Symfony2框架的優秀特性和技術特色 ,從而體會到使用Symfony2框架支持快速網站開發這一優點。架構
適合人羣composer
本文適用於但願提升PHP語言的開發技術,或者對Symfony2框架有興趣的讀者。框架
本文也適用於系統架構師和各種技術決策者。工具
1.前言性能
在不久前的4月20日,中國四川省雅安地區發生了7.0級地震,累計受災人數達到200多萬。尋人平臺在這 樣的狀況下可以起到很大的幫助,並且,尋人平臺越早上線,實用價值就越高。學習
Symfony2能夠用來支持大型網站的 建設,在中小型網站的快速搭建和開發上也有着很是好的支持。我藉由此次撰文的機會,向你們具體地分享一下我是如何在 3個小時內基於Symfony2開發出來一套支持PFIF[^1]格式的網站尋人平臺的,但願讀者可以對Symfony2的各個組件以及功能 產生一些瞭解。測試
[^1]: People Finder Interchange Format(wiki)是一個被普遍使用的開放的數據結構及標準, 災難發生後能夠用該標準在不一樣的組織或網站間交換尋人信息,幫助失去聯繫的人找到彼此。網站
2.Bundle的使用
Symfony2框架以及相關社區最大的特色之一就是支持Bundle。什麼是Bundle呢?簡單來講,Bundle就是一種「功能 」的抽象。經過把一類具體的問題抽象成一個Bundle,能夠把一個系統的邏輯進行切分:Bundle的開發者能夠專一在某類問 題的解決上,而Bundle的使用者則能夠把工做的重心放在本身的業務邏輯上。
在互聯網開發領域,存在着大量能夠 被抽象的功能。好比用戶登陸系統,好比新聞評論,好比JS/CSS文件的壓縮和合並等等。舉個具體的例子,好比用戶登陸系 統,大部分項目對於用戶系統的需求其實都是差很少的,但每次要開發新產品的時候,都多多少少會去從新造一整個或一部 分用戶系統的輪子。而一個專門用來負責管理用戶系統的Bundle的出現則會減輕這些項目的開發壓力,提升項目質量的同時 能夠加快項目的總體開發速度。
Symfony2也支持Bundle。Symfony2的社區有大量由社區進行維護的Bundle,使用這 些開源的Bundle可讓咱們的項目直接擁有那部分Bundle所提供的功能。
如下列舉了本項目中用到的一些第三方 Bundle以及所對應負責的任務。
Bundle名 | 功能介紹 | 在項目中的職責 |
---|---|---|
MopaBootstrapBundle | 提供基於Bootstrap的頁面結構和模板 | 提供頁面的基本HTML架構,樣式 |
NelmioApiDocBundle | 自動生成API的文檔及接口測 試工具 | 生成API文檔以及接口測試工具,並容許工程師及第三方調用者使用工具測試接口是否正常 |
JMSSerializerBundle | 對象進行序列化工具 | 在接口中,將Doctrine2生成出來的 Entity對象轉換爲Json格式 |
須要安裝一個Bundle,一般只須要兩步:
使用composer安裝這些Bundle
對Symfony2進行配置,開啓這些Bundle的支持而且作一些設置工做。
大部分Bundle經過以上兩步就可以被集成進你的項目中,安裝這些Bundle只須要修改一些配置文件而且運行一個系統命 令便可。
來源:http://www.bianceng.cn/webkf/PHP/201309/37273.htm