步骤 1: 检查你的开发环境

在开始投入到这个项目之前,我们需要检查下,让所有人都有一个好的开发环境。这很重要。和 10 年前相比,现在可供使用的开发者工具已经非常不同了。它们朝好的方向演进了很多。如果不使用它们,那就太可惜了。好的工具可以帮你走得很远。

请不要跳过这一步,或者至少读一下关于 symfony 命令的最后一段。

一台电脑

你需要一台电脑。好消息是你可以使用任何一个流行的操作系统:macOS、Windows 或者 Linux。Symfony 和我们要使用的所有工具都兼容这些操作系统。

基于我个人观点的选择

我想要挑选最好的工具来快速推进项目。所以我基于自己的判断为本书选择了如下的配套开发软件。

我们选择用 PostgreSQL 来作为数据库、消息队列、缓存和会话存储。对大多数项目来说,PostgreSQL 是最好的解决方案,它的伸缩性很棒,而且由于只要管理一个服务,它简化了基础设施的搭建。

在书的结尾,我们会学习如何用 RabbitMQ 来处理消息队列,以及如何用 Redis 来存储会话。

IDE

如果你想的话,你可以使用 Notepad 作为编辑器,但我并不推荐。

我过去用 Textmate 开发,现在不用了。一个“真正”的 IDE 所带来的开发舒适感是无价的。自动补齐、自动添加并排序 use 语句、从一个文件跳转到另一个,这些都是可以大幅提高生产率的功能。

我会推荐 Visual Studio CodePhpStorm。前者是免费的,后者不免费,但和Symfony整合得更好(多亏了 Symfony Support Plugin 插件)。你来选择好了。我知道你想要问我用的是哪个 IDE。我是在 Visual Studio Code 里写作本书的。

终端

我们会一直从 IDE 切换到命令行。你可以使用你 IDE 里内置的终端,但我更想用一个单独的终端,这样它的窗口空间也更大。

Linux 自带 Terminal 。在 macOS 上可以用 iTerm2 。Windows 上 Hyper 也很好用。

Git

我的上一本书推荐了 Subversion 来做版本控制。现在,看上去所有人都用 Git 了 。

在 Windows 上,安装 Git bash

确保你了解那些常见操作,比如运行 git clonegit loggit showgit diffgit checkout……

PHP

我们会用 Docker 来提供服务,但考虑到性能、稳定性和简洁性,我还是喜欢在本地电脑安装 PHP。你愿意的话可以叫我守旧派,但对我来说,本地 PHP 和 Docker 服务的组合堪称完美。

请使用 PHP 8.0 版本,并且确保`以下 PHP 扩展`已经安装,如果没有的话现在就把它们装好:intlpdo_pgsqlxslamqpgdopensslsodium。可选择安装 rediscurlzip

你可以用 php -m 命令来查看当前启用的扩展。

如果你的平台支持 php-fpm 的话,我们也需要它,用 php-cgi 也可以.

Composer

如今依赖包管理是 Symfony 项目的关键。Composer 是 PHP 的包管理器,请去获取它的最新版本。

如果你对 Composer 还不熟悉的话,去花点时间读一下关于它的内容。

小技巧

你不必输入完整的命令名:composer reqcomposer require 的作用是一样的,你也可以用 composer rem 代替 composer remove……

NodeJS

我们不会写很多 JavaScript 代码,但我们会用 JavaScript/NodeJS 的工具来管理我们的前端资产。检查下你是否安装好了 NodeJSYarn 包管理工具。

Docker 和 Docker Compose

服务将由 Docker 和 Docker Compose 来管理。把它们安装好 并且启动 Docker。如果你是第一次使用 Docker,去熟悉一下这个工具。不用害怕,我们对它的使用十分直截了当。没有花哨的配置项,也没有复杂的设置步骤。

Symfony CLI

最后但同样重要的一点是,我们会使用 symfony 命令来提高生产率。它提供了本地 web 服务器,可以与 Docker 完整集成,并且支持 SymfonyCloud,这些都可以为我们节省很多时间。

安装 Symfony CLI 并且把它移动到你的 $PATH 路径下。如果你还没有 SymfonyConnect 账号,就去创建一个,然后用 symfony login 登录。

要在本地使用 HTTPS,我们也需要去 安装一个 certificate authority (CA) 来启动对 TLS 的支持。运行下面的命令:

  1. $ symfony server:ca:install

运行下面的命令,来检查你的电脑是否符合所需的全部条件:

  1. $ symfony book:check-requirements

如果你想让开发更有趣,你也可以运行 Symfony proxy。这个步骤是可选的,但它可以让你在项目中使用一个以 .wip 结尾的本地域名。

当我们在终端执行命令的时候,我们几乎总是会加上 symfony 前缀,比如我们会用 symfony composer,而不仅仅是 composer,又比如我们用 symfony console 来代替 ./bin/console

这样做的主要原因是 symfony 命令会自动设置一些环境变量,它们是根据你电脑上 Docker 运行的服务来设置的。本地 web 服务器会把这些环境变量自动注入到 HTTP 请求中。所以,在命令行上使用 symfony 可以确保在各处都有一致的行为。

此外,symfony 命令会为项目在一切可能的 PHP 版本中,自动选择“最好”的版本。


This work, including the code samples, is licensed under a Creative Commons BY-NC-SA 4.0 license.