关于本书
Symfony 是最成功的PHP项目之一。它既是一个强健的全栈框架,也是一套流行的可复用组件。
随着第 5 版的到来,这个项目大概已经达到了成熟的阶段。我能感觉到,过去 5 年里我们所做的一切渐入佳境:新的低层组件、和其它软件的高层次整合、帮助开发者提供效率的工具。开发体验得到显著提高,但灵活性却没有打折。用 Symfony 开发项目从没有这么有趣过。
如果你之前没有接触过 Symfony ,那么 Symfony 5 的到来正是学习如何一步一步开发应用程序的好机会。本书向开发者展示了该框架的强大功能以及它是如何提高生产力的。
如果你已经是 Symfony 开发者了,你会重新认识它。这个框架在过去几年里经过了显著地演化,开发体验得到了大幅提升。我有种感觉,很多 Symfony 开发者仍然被“困”于过时的习惯,他们难以采纳 Symfony 里的新方式来开发应用程序。我能理解其中的一些原因。演化的步伐以惊人的速度在推进。当开发者们把全部精力投入在一个项目上时,他们没有时间去知道社区中发生的每一件事。我切身体会到这点,所以我不会假装自己知道所有事,还差得远。
本书不仅涉及开发中用到的新方式,也会谈到新的组件:HTTP client、Mailer、Workflow 和 Messenger。它们是游戏规则改变者。这些组件应该会改变你对 Symfony 应用程序的思考方式。
Web 的显著进化也让我觉得有必要写一本新书。诸如 APIs、 单页应用 、 容器化 和 持续部署 这样的主题和其它很多主题现在都应该有所探讨。
你的时间很宝贵,所以我不会写长篇大论,也不会对核心概念做详尽的解释。这本书更多是关于一次开发的旅程:我们从哪里开始,要写什么样的代码,何时,以什么方式。我会尝试在一些重要主题上引发你的兴趣,然后让你自己决定你是否要学习更多,挖掘更深。
我也不想重复现有的文档,它的质量已经很高了。我会在每一步/章末尾的“深入学习”里大量引用文档。你可以把本书看作是学习指引,这些章节指引你学习更多 Symfony 资源。
本书描述了一个应用程序创建的过程,从零开始直到可以投入生产环境。但我们不会开发投入生产环境所需的一切功能。 最终的成品不会完美。我们会走一些捷径。我们甚至会跳过一些边界情况(edge-case)的处理,也会跳过一些验证或测试。我们也不会遵行所有的最佳实践。但是我们还是会触及到现代 Symfony 项目的方方面面。
在开始写本书的时候,我做的第一件事情就是编写最终应用程序的代码。当添加新功能时,让我印象深刻的是我能在几乎不怎么费事的情况下保持和之前一样的开发速度和开发成果。这要归功于文档,也要归功于 Symfony 5 知道如何使你的开发更顺畅。我确信 Symfony 在很多方面仍然有改进的空间(我已经对可能的改进做了些笔记),但它的开发体验比几年前好了很多。我想把这一点告诉全世界。
本书分为几个步骤,每个步骤又分为子步骤。它们读起来应该会很快。但更重要的是,我邀请你来一边读本书一边写代码。把代码敲出来,然后对其测试、部署和微调。
最后,同样重要的一点是:如果你遇到了困难,要毫不犹豫地去向人寻求帮助。你可能遇到了一个边界情况,也可能你写的代码中有一个拼写错误很难定位和修复。去问问题吧。我们在 Slack 和 Stack Overflow 上有一个很棒的社区。
你准备好写代码了吗?玩得开心!
This work, including the code samples, is licensed under a Creative Commons BY-NC-SA 4.0 license.