# 安裝和建立Symfony框架
本篇文章解釋了如何通過不同方式安裝Symfony以及在安裝過程中出現的大多數問題如何解決
Symfony提供了一個稱作“Symfony Installer“的專業應用來簡化創建Symfony應用,這個安裝器是需要PHP5.4以上版本的,并且只需在您的系統安裝一次。
~~~
# Linux和蘋果操作系統
$ sudo mkdir -p /usr/local/bin
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony
~~~
~~~
# Window系統
c:\> php -r "readfile('https://symfony.com/installer');" > symfony
~~~
在Linux和蘋果系統中,一個全局的Symfony命令被創建。在Wndows中,移動這個symfony文件到包含在PAHT環境變量的文件目錄中來創建這個全局命令,或者那些對您方便的目錄。
~~~
# 例如,如果使用WAMP
c:\> move symfony c:\wamp\bin\php
# 然后執行
c:\> symfony
# 移動到項目目錄
c:\> move symfony c:\projects
# 執行命令
c:\> cd projects
c:\projects\> php symfony
~~~
一旦Symfony Installer安裝成功,就可以像下面創建您的第一個Symfony應用
~~~
$ symfony new my_project_name
~~~
這條命令將會創建一個名為my_project_name的新文件目錄,它包含了一個基于最新Symfony框架的空項目。而且安裝器會檢測是否您的系統符合Symfony的運行要求,如果沒有達到,它將會列出為了符合運行要求您所需要作出的系統更改。
如果安裝器沒有運行后者沒有任何輸出,請確保PHP的Phar擴展已安裝并且已啟用。
## # 基于特定Symfony版本的項目
如果您的項目需要特定版本的Symfony,那么請您使用`new`命令可選的第二個參數
~~~
# 使用Symfony任意分支的最新版本
$ symfony new my_project_name 2.8
$ symfony new my_project_name 3.1
# 使用特定版本
$ symfony new my_project_name 2.8.3
$ symfony new my_project_name 3.1.5
# 使用Beta或RC版本(測試新版本有用)
$ symfony new my_project 2.7.0-BETA1
$ symfony new my_project 2.7.0-RC1
# use the most recent 'lts' version (Long Term Support version)
$ symfony new my_project_name lts
~~~
# 通過Composer創建Symfony應用
如果您仍在使用PHP5.3或者因為某些原因無法使用Symfony安裝器,您可以通過PHP Composer(一個現代PHP應用依賴管理器)來安裝Symfony應用。
如果您還沒有安裝PHP Composer,那么請全局安裝Composer,然后執行`create-project`命令來創建基于最新穩定版本的項目。
`$ composer create-project symfony/framework-standard-edition my_project_name`
您也可以通過給`create-project`傳遞第二個參數來安裝其他版本的Symfony。
`$ composer create-project symfony/framework-standard-edition my_project_name "2.8.*"`
如果您的網速很慢,您或許會認為Composer沒有工作。如果是這個的話,請添加`-vvv`參數到前一個命令來顯示Composer做的詳細輸出。
# 運行Symfony應用
開發時,Symfony使用PHP內置Web服務器(PHP版本5.4以上)來運行應用,因此,請執行以下命令
~~~
$ cd my_project_name/
$ php bin/console server:run
~~~
然后打開瀏覽器,訪問http://localhost:8000 來查看Symfony的歡迎頁面。
如果顯示空白或其他錯誤頁面,請檢查目錄權限。
當完成應用工作是,可以在控制臺通過`Ctrl+C`組合按鍵關閉服務器或者直接關掉命令行。
PHP內置Web服務器在開發中很好,但在生產環境中請務必使用Apache、Nginx這類穩定的Web服務器。
# 檢測Symfony應用的配置與創建
Symfony安裝器檢測您的系統是否符合運行要求,然而,命令控制臺的PHP配置和PHP web配置可能有所不同,因此,Symfony提供了一個可視化的配置檢測器。通過下面的鏈接來接測您的配置,修復一些問題。
http://localhost:8000/config.php
# 解決權限問題
如果您有任何文件權限錯誤或者看到一個白屏,那么請查閱文件權限相關文章解決。
# 更新Symfony應用
現在,您已經創建了一個完整的Symfony應用!每個Symfony應用都依賴大量的第三方類庫,他們位于`vendor/`目錄下,需要Composer來管理。
經常更新這些類庫是一個好的習慣,它可以阻止Bugs和安全隱患。執行Composer的`update`命令來一次更新他們(這可能會花上幾分鐘,具體視您項目依賴復雜度而定)。
~~~
$ cd my_project_name/
$ composer update
~~~
Symfony提供了一個命令來檢測您的項目以來是否有任何已知的安全隱患。
`$ php bin/console security:check`
經常執行這條命令,這樣您就可能盡快解決這些隱患。
# 安裝Symfony示例或其他發行版本
您已經下載了Symfony的標準版本:所有Symfony應用的默認開始版本。您將會通過這個項目來學習該文檔。
Symfony也提供了其他的項目用來構建項目
### 示例
這是一個完整功能的應用,您可以瀏覽到推薦的方式來開發symfony應用。它已經被視為Symfony新手的學習工具,并且他的源代碼有大量注釋和有用的備注,方便學習者理解代碼。
### Syfmony CMF(Content Manage Framework,內容管理框架)標準版本。
Symfony CMF是一個用來幫助開發者更好添加CMS功能到他們Symfony應用的一個項目。
### Symfony REST版本
展示了如何構建通過FOSRestBundle和其他幾個插件來提供RESTFul API服務的應用。
# 安裝一個已存在應用
在Symfony應用中協作,和之前描述的創建新的symfony應用是不一樣的,其他人已經創建和提交它到一個共享倉庫了。所以,推薦用戶不要提交一些文件,例如parames.yml,和一些目錄,例如vendor/,cache,logs到倉庫,因此當安裝一個已有項目時,請執行一下命令:
~~~
# 克隆并下載代碼
$ cd projects/
$ git clone ...
# 通過composer命令安裝項目類庫到vendor文件夾
$ cd my_project_name/
$ composer install
# 這時composer就會詢問您已確定一些未定義的參數,用來完成依賴安裝
$ ...
~~~