安装和设置Symfony框架

欢迎来到Symfony!开始一个全新的Symfony项目是容易的,你的第一个可正常运作的Symfony程序能在几分钟之内配置完成。

为了让创建新程序更加简单,Symfony提供了一个安装器,下载它就是你的第一步。

安装Symfony Installer

使用Symfony Installer来创建全新Symfony项目是唯一被推荐的方式。安装器就是个php程序,只需安装一次,即可创建数量不限的Symfony程序。

安装器需要php5.4或更高。如果你仍然在使用遗产级的php5.3,你不能使用Symfony安装器。

如果你使用的是安装环境的打包解决方案,比如WAMP,XAMP或MAMP,请检查它们是否采用了PHP近期版本。你可以在命令行中使用下述命令来查看PHP版本:
  1. $ php --version

根据操作系统的不同,Symfony安装器的安装方式也有所不同。

Linux和MAC OS X系统

打开命令行工具执行下述命令:

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

这将创建一个全局的Symfony命令到你的系统上。

Windows系统

在Windows上,执行下述命令:

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

它会下载一个symfony文件,然后把这文件移动到你想创建Symfony项目的文件夹里,通过下述命令可引导各种安装:

  1. c:\> move symfony c:\projects
  2. c:\projects\> php symfony

创建Symfony程序

当Symfony安装器被设置好之后,使用全新命令new来创建Symfony项目:

  1. # Linux, Mac OS X
  2. $ symfony new my_project_name
  3.  
  4. # Windows
  5. c:\> cd projects/
  6. c:\projects\> php symfony new my_project_name

这命令创建了一个新的my_project_name目录,里面是一个基于最新稳定版Symfony程序的新项目。除此之外,安装器还会检查你的系统是否具备了执行Symfony程序的技术需求。若不满足,你会看到一个“哪些地方还需改变”的需求列表。

出于安全原因,所有Symfony版本都在分发之前进行了数字签名。如果你需要验证整合到程序中的版本号,按照这篇文章中的步骤来操作。

如果安装器不工作或是不输出任何内容,确保你的系统已经安装并开启了phar扩展

令你的程序运行在特定Symfony版本

万一你需要把项目运行在特定的Symfony版本上,使用new命令的同时附带第二个可选参数:

  1. # use the most recent version in any Symfony branch 不同分支的最新版本
  2. $ symfony new my_project_name 2.8
  3. $ symfony new my_project_name 3.0
  4.  
  5. # use a specific Symfony version 指定版本
  6. $ symfony new my_project_name 2.7.3
  7. $ symfony new my_project_name 2.8.1
  8.  
  9. # use a beta or RC version (useful for testing new Symfony versions) 新版可用于测试
  10. $ symfony new my_project 3.0.0-BETA1
  11. $ symfony new my_project 2.7.0-RC1

安装器还支持一个特殊版本lts,即最新的长期维护版本Symfony LTS version

  1. $ symfony new my_project_name lts

参考Symfony发布进程来深入理解为何有多种框架版本存在,以及哪种更适合你的项目。

不使用安装器来创建Symfony程序

如果你仍然在用php5.3,或者你因某种原因不能执行安装器,你可以基于composer来安装Symfony。

Composer是个依赖管理器,被现代php程序广泛使用,它也可用于安装Symfony框架。如果你不需要全局安装composer,请往下看。

全局安装Composer

请参考全局安装Composer

用Composer创建Symfony程序

若你已安装过Composer,执行create-project命令来创建基于稳定版本的Symfony程序:

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

若需指定版本,提供版本号作为create-project的第二个参数

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

如果你的网络连接很慢,你可能会认为Composer没有做任何事。这时,请在前述命令中添加-vvv旗标,以输出Composer正在做的每一件事的细节。

运行Symfony

在开发时,Symfony利用了PHP内置的web服务器。因此,运行Symfony程序关乎项目所在目录并执行如下命令:

  1. $ cd my_project_name/
  2. $ php bin/console server:run

然后,打开浏览器访问http://localhost:8000/链接,即可看到Symfony欢迎页:

第1章 设置(Setup)  - 图1

除了欢迎页,你还可能看到空白页和错误页面,这通常是由于目录权限的错误配置造成的。根据你的操作系统,有若干解决方案。相关内容在“设置权限”小节中进行了解释。

PHP内置服务器仅在php5.4和以上版本中存在。如果是老版PHP,你应该在操作系统的web server上针对Symfony项目配置虚拟主机(Virtual Host)。

server:run命令只适合于开发阶段。如果你使用传统的web服务器比如ApacheNginx,参考配置web服务器这篇文章。

检查Symfony运行环境的配置

Symfony程序内置了一个服务器环境检查器,用来显示有关设置是否适合于Symfony。访问下面链接即可检查:

  1. http://localhost:8000/config.php

如果显示有问题,在继续使用Symfony之前修复它们。

权限修复请参考设置或修复文件权限

更新Symfony程序

至此,你已创建了可以立即投入开发的全功能Symfony项目。Symfony程序依赖的是大量外部类库,它们可以下载到vendor/目录下,并且被Composer进行排他管理。

频繁更新这些三方类库是最佳实践,可以防止bug和漏洞。执行Composer的update命令来一次性全部更新它们:

  1. $ cd my_project_name/
  2. $ composer update

根据项目复杂程度,这种更新方式需要耗费若干分钟才能完成。

Symfony还提供了一个用于检查项目依赖是否包含了已知的重大安全漏洞的命令:

  1. $ php bin/console security:check

定期执行此命令是一个好习惯,因为可以尽可能快地更新或替换掉那些免疫低下的依赖。

安装Symfony演示程序

Symfony演示程序是全功能的,展示了推荐的开发方式。它被当作Symfony初学者的学习工具,源代码中有大量注释和有用的提示。

为了下载演示程序,在你的系统的任何位置,执行Symfony安装器的demo命令:

  1. # Linux, Mac OS X
  2. $ symfony demo
  3.  
  4. # Windows
  5. 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命令,下载和安装程序所需的全部依赖:

  1. $ cd my_project_name/
  2. $ composer install

为何Composer知道要安装哪个特殊的依赖?这是因为当Symfony程序被提交到宝库时,composer.jsoncomposer.lock文件也被提交。这两个文件告诉了Composer在安装Symfony时需要哪些依赖(及其特定版本)。

开始开发

现在你有了一个全功能的Symfony程序,可以开始开发了!你的分发包中包含了一些样例代码 - 查看程序中的README.md文件(用记事本打开),可以了解该分发包中的例程细节。

如果你对Symfony还较为陌生,参考创建你的第一个Symfony页面,这里你可以学习到如何创建页面、改变配置,以及任何你想在新程序中做的事。

了解更多

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。