步骤 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 clone
、git log
、git show
、git diff
、git checkout
……
PHP
我们会用 Docker 来提供服务,但考虑到性能、稳定性和简洁性,我还是喜欢在本地电脑安装 PHP。你愿意的话可以叫我守旧派,但对我来说,本地 PHP 和 Docker 服务的组合堪称完美。
请使用 PHP 8.0 版本,并且确保`以下 PHP 扩展`已经安装,如果没有的话现在就把它们装好:intl
、pdo_pgsql
、xsl
、amqp
、、openssl
、sodium
。可选择安装 redis
、 curl
和 zip
。
你可以用 php -m
命令来查看当前启用的扩展。
如果你的平台支持 php-fpm
的话,我们也需要它,用 php-cgi
也可以.
如今依赖包管理是 Symfony 项目的关键。 是 PHP 的包管理器,请去获取它的最新版本。
如果你对 Composer 还不熟悉的话,去花点时间读一下关于它的内容。
小技巧
你不必输入完整的命令名:composer req
和 composer require
的作用是一样的,你也可以用 composer rem
代替 ……
NodeJS
Docker 和 Docker Compose
服务将由 Docker 和 Docker Compose 来管理。把它们安装好 并且启动 Docker。如果你是第一次使用 Docker,去熟悉一下这个工具。不用害怕,我们对它的使用十分直截了当。没有花哨的配置项,也没有复杂的设置步骤。
最后但同样重要的一点是,我们会使用 symfony
命令来提高生产率。它提供了本地 web 服务器,可以与 Docker 完整集成,并且支持 SymfonyCloud,这些都可以为我们节省很多时间。
安装 并且把它移动到你的 $PATH
路径下。如果你还没有 SymfonyConnect 账号,就去创建一个,然后用 symfony login
登录。
要在本地使用 HTTPS,我们也需要去 来启动对 TLS 的支持。运行下面的命令:
运行下面的命令,来检查你的电脑是否符合所需的全部条件:
$ symfony book:check-requirements
如果你想让开发更有趣,你也可以运行 Symfony proxy。这个步骤是可选的,但它可以让你在项目中使用一个以 .wip
结尾的本地域名。
当我们在终端执行命令的时候,我们几乎总是会加上 symfony
前缀,比如我们会用 symfony composer
,而不仅仅是 composer
,又比如我们用 symfony console
来代替 ./bin/console
。
这样做的主要原因是 symfony
命令会自动设置一些环境变量,它们是根据你电脑上 Docker 运行的服务来设置的。本地 web 服务器会把这些环境变量自动注入到 HTTP 请求中。所以,在命令行上使用 可以确保在各处都有一致的行为。
此外,symfony
命令会为项目在一切可能的 PHP 版本中,自动选择“最好”的版本。