Symfony 01:安装和配置
Symfony 提供了一个安装器,用于安装和初始化你的应用。这个安装器实际上是用PHP代码编写的一个脚本程序,运行在PHP 5.4及以上的版本,通过它你可以创建任意多个Symfony应用。
①下载symfony安装器
● Linux和MacOS
打开控制台,执行以下命令:
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symphony
执行完上述命令后,就创建了一个全局的symfony命令。
● Windows
打开控制台,执行以下命令:
c:> php -r “readfile(‘https://symfony.com/installer‘);” > symfony
然后,将下载的symfony文件移动到你的工程目录下
c:> move symfony c:\projects
②创建Symfony应用
确保symfony安装器可用,然后执行以下命令:
● Linux和MacOS
$ symfony new my_project_name
● Windows
c:> cd projects/
c:\projects> php symfony new my_project_name
执行完上述命令后,会自动创建一个“my_project_name”目录,该目录下包含了一个全新的基于最近稳定版本的Symfony工程。此外,安装器会检查你的系统是否满足执行Symfony应用的技术指标要求,如果不满足,你会看到输出的一个列表,其中给出了不满足的技术指标需求。
▼ 指定Symfony版本号
如果你要创建一个指定版本Symfony应用,那么需要在new命令中加入第二个参数:
$ symfony new my_project_name 2.8
$ symfony new my_project_name 2.8.1
$ symfony new my_project 3.0.0-BETA1
$ symfony new my_project 3.1.0-RC1
▼ 目录结构说明
my_project_name/
|— app/
| |— console
| |— cache/
| |— config
| |— logs
| ∟ config
|— src/
| ∟ AppBundle
| |— vendor
∟ web/
这是Symfony提出的一种文件组织方式的标准,每个目录的具体说明如下:
● app/cache/:存储应用运行过程中生成的全部缓存文件
● app/config/:存储为每个环境定义的配置文件
● app/logs/:存储应用运行过程中生成的日志文件
● app/Resources/:存储应用的模板和国际化文件
● src/AppBundle/:存储你自己业务逻辑代码
● vendor/:Composer安装的应用所依赖的组件,比如Symfony核心就存储在这个目录下,这个目录下的全部文件都不能进行改动。
● web/:网站发布时的根目录,存储应用的前端控制器和网站静态资源文件,比如stylesheet、JavaScript和图片等。
▼ Application Bundles
Symfony中,通常以Bundle来组织具有特定功能的代码,一个Bundle意味着功能上独立且稳定,可被重复使用的组件。因此,如果你自己定义的Bundle不能在Symfony其他的应用中重复使用,那么就不能定义为一个Bundle。此外,如果一个Bundle依赖于另一个Bundle,最好将这两个Bundle合为一个。
建议:在你的应用逻辑代码中最好创建一个Bundle,如上述所述AppBundle。
通过Bundle这种方式来组织代码,可以让你的代码变得更加可读和容易理解。
③运行Symfony应用
Symfony提供了一个基于PHP的内部webserver,在开发过程中用于运行调试你的应用。执行下面的命令:
$ cd my_project_name/
$ php bin/console server:run
然后,打开你的浏览器,在地址栏中输入http://localhost:8000/,你就可可以看到如下的Symfony欢迎界面:
如果没有出现欢迎界面,你或许会看到一个空白页或者错误页面,这是因为错误配置导致的目录访问权限造成的。
如果需要停止WebServer运行,可以输入Ctrl+C以中止服务。
需要注意一点的是,这个PHP WebServer需要运行在PHP 5.4 及以上版本,对于开发模式来说极为有用,但是对于最终的生产版本来说,还是需要使用Apache或者Nginx作为WebServer。
④检查Symfony应用配置和安装
Symfony专门提供了一个可视化的配置页面,访问地址为:
http://localhost:8000/config.php
▼ 配置文件
Symfony的配置文件存储在app/config/,该目录下定义基础配置、路由、服务、安全性等。通常默认选为yaml文件,当然也可以换成其他格式如XML和PHP。
app/config/config.yml:总配置文件,其他配置文件通过imports引入。
imports:
- { resource: parameters_default.yml }
- { resource: parameters_service.yml, ignore_errors: true }
- { resource: parameters.yml }
- { resource: security.yml }
- app/config/config_dev.yml:开发环境下的总配置文件。
- app/config/config_prod.yml:生产环境下的总配置文件。
- app/config/config_test.yml:测试环境下的配置文件。
- app/config/routing.yml:路由配置文件。
- app/config/security.yml:安全性配置文件,比如AAA验证配置、防火墙配置,用户角色、用户组配置等。
● 基础配置文件
基础配置文件就是app/config/parameters.yml,
主要包括数据库和邮箱配置:
parameters:
database_driver: pdo_mysql #数据库驱动
database_host: localhost
database_port: 3306
database_name: edu
database_user: root
database_password: ‘root’
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: zh_CN
secret: l0wkrtgjp0gk44woo0soco4k0488w4c
user_partner: none
⑤更新Symfony应用
到这里,对于你要开发项目来说,你已经创建了一个功能较为全面的Symfony应用。实际上,Symfony依赖于一系列外部的库,它们都存放在项目中的“vendor/”目录下,统一由Composer进行管理(Composer是一款PHP包管理工具)。
定期的更新三方的库主要目的在于修复bugs和其他安全性问题,执行Composer的“update”命令就能立即对依赖包实现更新:
$ cd my_project_name/
$ composer update
更新时间主要取决于你的项目的复杂性和网络情况,一般几分钟就可以完成更新。