# 安装和建立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就会询问您已确定一些未定义的参数,用来完成依赖安装
$ ...
~~~