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

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

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

    基于我个人观点的选择

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

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

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

    IDE

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

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

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

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

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

    Git

    在 Windows 上,安装 。

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

    PHP

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

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

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

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

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

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

    小技巧

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

    NodeJS

    Docker 和 Docker Compose

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

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

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

    要在本地使用 HTTPS,我们也需要去 来启动对 TLS 的支持。运行下面的命令:

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

    1. $ symfony book:check-requirements

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

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

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

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