簡介
Symfony2是一個基於PHP語言的Web開發框架,有著開發速度快、性能高等特點。但Symfony2的學習曲線也比 較陡峭,沒有經驗的初學者往往需要一些練習才能掌握其特性。
本文通過一個快速開發尋人平台的實例向讀者介紹 Symfony2框架的一些核心功能和特點。通過閱讀本文,你可以通過一些具體的例子了解Symfony2框架的優秀特性和技術特點 ,從而體會到使用Symfony2框架支持快速網站開發這一優勢。
適合人群
本文適用於希望提高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,通常只需要兩步:
使用composer安裝這些Bundle
對Symfony2進行配置,開啟這些Bundle的支持並且做一些設置工作。
大部分Bundle通過以上兩步就能夠被集成進你的項目中,安裝這些Bundle只需要修改一些配置文件並且運行一個系統命 令即可。