說明:本篇學習筆記是學習 http://www.chrisyue.com/symfony-in-action-day-1.html 記錄的,作者用的是symfony2.7-的版本,本篇用的是symfony3的版本。
準備工作
php5.6,phpstorm2016,
初始化項目
先建一個目錄www
在這下面安裝symfony installer
$ 為命令提示符,實際不用輸入,不再贅述
`$php -r "readfile('http://symfony.com/installer');" > symfony.phar`
`$php symfony.phar`
會顯示版本號,及如何使用symfony installer 的簡單介紹:

接下來,我們用symfony.phar創建一個項目,新聞聚合類網站,取名news
`$php symfony.phar new news`
如果網絡沒問題的話(需要科學上網軟件),應該會出現進度條,此時Symfony installer在當前目錄下創建了news,并且初始化了Symfony框架的工作目錄,以及下載所需要的PHP第三方庫。
Downloading Symfony...
85.81 KB/4.89 MB ▓ 1%
當下載完成后,進入 news 目錄,我們可以看到 Symfony installer 為我們初始化的工作目錄。這里我們可以把一些對開發來說沒有必要的文件刪除掉(UPGRADE-***,LICENSE,README.md)。
不出意外,我們便可以通過一下命令開啟一個 Web server 監聽在 localhost:8000 上(注:此命令只能運行在 PHP 5.5 版本之上,并且 Windows 可能只能運行 server:run,兩者的區別你們自己試試就知道)
`$php bin/console server:start localhost:8000`
[OK] Web server listening on http://localhost:8000
*** 注:在 3.0 以下的版本,console 位于 app 目錄下面,后面所有 php bin/console xxx 命令,在老版本里都是 php app/console xxx,以下不再贅述!
另外在 *nix 環境下,app/console 或者 bin/console 只要有可執行權限,都是可以不需要顯式調用 php 而直接運行的:
`$ bin/console server:start`
[OK] Web server listening on http://127.0.0.1:8000
在瀏覽器里訪問 http://localhost:8000 應該可以看到Symfony Framework 安裝好之后的歡迎界面了。

如果是2.7-以下版本,歡迎界面不一樣。
至此,symfony初始化工作已經完成。
我們可以使用 Symfony 框架自帶的腳本工具,來確認當前的環境是否已經足夠順利運行 Symfony:
`$ php bin/symfony_requirements`
在 Symfony 2.7- 下
`$ php app/check.php`
比如我這里顯示的結果,命令運行結果推薦我安裝 intl 擴展

另外我們也可以看到提示說因為命令行加載的 php.ini 可能和 web 服務器加載的不一樣(常見的 php-fpm 一般都跟命令行下的 php 加載的不是同一個 php.ini 文件),建議在瀏覽器里查看 徑 /config.php 復查一下。

--
附:我在安裝時遇到的問題:
macdeMacBook-Pro:data mac$ php news/bin/symfony_requirements
Symfony Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> PHP is using the following php.ini file:
/usr/local/etc/php/5.6/php.ini
> Checking Symfony requirements:
.....E......................WW......
[ERROR]
Your system is not ready to run Symfony2 projects
Fix the following mandatory requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* date.timezone setting must be set
>Set the "date.timezone" setting in php.ini* (like Europe/Paris).
。。。
然后我自以為php.ini指的是,/private/etc/php.ini 修改了,重啟了,還是報錯。
就是沒看清上面寫著啊,
> PHP is using the following php.ini file:
/usr/local/etc/php/5.6/php.ini