安裝並設定Symfony框架


歡迎來到Symfony!開始一個全新的Symfony專案是容易的,你的第一個可正常運作的Symfony程式能在幾分鐘之內配置完成。

為了讓創建新程式更簡單,Symfony提供了一個安裝器,下載它就是你的第一步。

安裝Symfony Installer ¶

使用Symfony Installer來建立全新Symfony專案是唯一被推薦的方式。安裝器就是個php程序,只需安裝一次,即可建立數量不限的Symfony程式。

安裝器需要php5.4或更高。如果你仍在使用遺產等級的php5.3,你不能使用Symfony安裝器。

如果你使用的是安裝環境的打包解決方案,例如WAMP,XAMP或MAMP,請檢查它們是否採用了PHP近期版本。你可以在命令列中使用下述命令來查看PHP版本:

$ php --version

根據作業系統的不同,Symfony安裝器的安裝方式也有所不同。

Linux和MAC OS X系統 ¶

打開命令列工具執行下述命令:

$  sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$  sudo chmod a+x /usr/local/bin/symfony

這將創建一個全域的Symfony命令到你的系統上。

Windows系統 ¶

在Windows上,執行下述指令:

c:\>php -r "readfile('http://symfony.com/installer');" > symfony

它會下載一個symfony文件,然後把這文件移到你想要創建Symfony專案的資料夾裡,透過下述命令引導各種安裝:

c:\>move symfony c:\projects
c:\projects\> php symfony

創建Symfony程式 ¶

當Symfony安裝器被設定好之後,使用全新指令new來建立Symfony專案:

# Linux, Mac OS X
$  symfony new my_project_name

# Windows
c:\> cd projects/
c:\projects\> php symfony new my_project_name


#這指令建立了一個新的my_project_name目錄,裡面是一個基於最新穩定版Symfony程式的新專案。除此之外,安裝器還會檢查你的系統是否具備了執行Symfony程式的技術需求。若不滿足,你會看到一個「哪些地方還需改變」的需求清單。

出於安全原因,所有Symfony版本都在分發之前進行了數位簽章。如果你需要驗證整合到程式中的版本號,請按照這篇文章中的步驟來操作。

如果安裝器不工作或不輸出任何內容,確保你的系統已經安裝並開啟了phar擴充。

#

讓你的程式運作在特定Symfony版本 ¶

萬一你需要把專案運行在特定的Symfony版本上,使用new命令的同時附帶第二個可選參數:

# use the most recent version in any Symfony branch 不同分支的最新版本
$symfony new my_project_name 2.8
$symfony new my_project_name 3.0

# use a specific Symfony version 指定版本
$symfony new my_project_name 2.7.3$  symfony new my_project_name 2.8.1
 
# use a beta or RC version (useful for testing new Symfony versions) 新版可用于测试
$symfony new my_project 3.0.0-BETA1$  symfony new my_project 2.7.0-RC1

安裝器也支援一個特殊版本lts,即最新的長期維護版本Symfony LTS version

$  symfony new my_project_name lts

參考Symfony發布進程來深入理解為何有多種框架版本存在,以及哪種更適合你的專案。

不使用安裝器來創建Symfony程式 ¶

如果你仍然在用php5.3,或者你因為某種原因不能執行安裝器,你可以基於composer來安裝Symfony。

Composer是個依賴管理器,被現代php程式廣泛使用,它也可用於安裝Symfony框架。如果你不需要全域安裝composer,請往下看。

全域安裝Composer ¶

請參考全域安裝Composer。

用Composer建立Symfony程式 

如果你已安裝過Composer,執行create-project指令來建立基於穩定版本的Symfony程序:

$  composer create-project symfony/framework-standard-edition my_project_name

若需指定版本,提供版本號碼作為create-project的第二個參數

$  composer create-project symfony/framework-standard-edition my_project_name "3.0.*"

如果你的網路連線很慢,你可能會認為Composer沒有做任何事。這時,請在前述命令中加上-vvv旗標,以輸出Composer正在做的每一件事的細節。

運行Symfony 

#在開發時,Symfony利用了PHP內建的web伺服器。因此,運行Symfony程式關乎專案所在目錄並執行如下命令:

$  cd my_project_name/
$  php bin/console server:run

然後,打開瀏覽器訪問http://localhost:8000/鏈接,即可看到Symfony歡迎頁:

除了歡迎頁,你可能還會看到空白頁和錯誤頁面,這通常是由於目錄權限的錯誤配置造成的。根據你的作業系統,有若干解決方案。相關內容在「設定權限」小節中進行了解釋。

PHP內建伺服器僅在php5.4以上版本中存在。如果是老版PHP,你應該在作業系統的web server上針對Symfony專案配置虛擬主機(Virtual Host)。

#

server:run指令只適合開發階段。如果你使用傳統的web伺服器例如Apache或Nginx,參考設定web伺服器這篇文章。

檢查Symfony運作環境的設定 ¶

Symfony程式內建了一個伺服器環境檢查器,用來顯示有關設定是否適合Symfony。訪問下面連結即可檢查:

http://localhost:8000/config.php

如果顯示有問題,請在繼續使用Symfony之前修復它們。

權限修復請參考設定或修復檔案權限。

更新Symfony程式 ¶

至此,你已創建了可以立即投入開發的全功能Symfony專案。 Symfony程式所依賴的是大量外部類別庫,它們可以下載到vendor/目錄下,並且被Composer進行排他管理。

頻繁更新這些三方類別庫是最佳實踐,可以防止bug和漏洞。執行Composer的update指令來一次全部更新它們:

$  cd my_project_name/
$  composer update

根據專案複雜程度,這種更新方式需要耗費若干分鐘才能完成。

Symfony也提供了一個用於檢查專案依賴是否包含了已知的重大安全漏洞的命令:

$  php bin/console security:check

定期執行此命令是一個好習慣,因為可以盡可能快速地更新或替換掉那些免疫低下的依賴。

#

安裝Symfony演示程式 ¶

Symfony演示程式是全功能的,並展示了建議的開發方式。它被當作Symfony初學者的學習工具,原始碼中有大量註釋和有用的提示。

為了下載演示程序,在你的系統的任何位置,執行Symfony安裝器的demo命令:

# Linux, Mac OS X
$ symfony demo

# Windows
c:\projects\> php symfony demo

一旦下載完畢,進入symfony_demo目錄,並執行PHP內建web server,執行php bin/console server:run命令,然後訪問瀏覽器的http://localhost:8000鏈接,即可開始使用Symfony演示程式。

安裝Symfony分發包 ¶

Symfony專案的“分發包”,是指全功能的程序,包括了Symfony核心類庫,一組必備的bundles,一套合理的目錄結構,以及一些預設的配置。實際上,當你按照先前的介紹創建了Symfony程式之後,你已經下載了由Symfony提供的預設分發包——被稱為Symfony標準版(Symfony Standard Edition)

Symfony標準版,是目前最普及的分發,也是Symfony開發者的首選。不過,Symfony社群也提供了其他分發包供你選擇使用。

  • Symfony CMF標準版是需要Symfony CMF的首選分發包,CMF是基於Symfony的開源項目,方便開發者向框架添加CMS(內容管理系統)功能。

  • Symfony REST Edition展示瞭如何建立一個RESTFul API程序,該分發整合了FOSRestBundle和其他幾個關聯bundles。

使用原始碼控制 ¶

如果你正在使用Git這樣的版本控制系統,你可以安全地提交你的全部專案程式碼。這是因為Symfony程式中已經包含了一個專門準備給Symfony的.gitignore檔案。

對於把你的專案程式碼託管到Git「究竟有多好」的介紹,參考如何建立和儲存一個Symfony專案到Git中。

檢查版本化的Symfony程式 ¶

當你使用Composer來管理程式的依賴時,推薦在提交程式碼到寶庫時,忽略掉整個的vendor文件夾。這意味著當你從Git寶庫中查看Symfony程式時,裡面是沒有vendor目錄的,當然整個程式也是難以啟動的。

若要令程式運行,檢查Symfony程序,然後執行install這個Composer指令,下載和安裝程式所需的全部依賴:

$  cd my_project_name/
$  composer install

為何Composer知道要安裝哪個特殊的依賴?這是因為當Symfony程式被提交到寶庫時,composer.jsoncomposer.lock檔案也被提交。這兩個檔案告訴了Composer在安裝Symfony時需要哪些依賴(及其特定版本)。

開始開發 ¶

現在你有了一個全功能的Symfony程序,可以開始開發了!你的分發包中包含了一些樣本代碼 - 查看程式中的README.md檔案(用記事本開啟),可以了解該分發包中的例程細節。

如果你對Symfony還較為陌生,參考創建你的第一個Symfony頁面,這裡你可以學習到如何創建頁面、改變配置,以及任何你想在新程式中做的事。

    #