部署和持续集成 (CI)
FTP 已经过时。它在今天已不可行,会导致速度变慢,而且普通的 FTP 连接也不安全。一个团队很难使用 FTP 来部署他们的修改,因为这会在他们的代码中产生巨大的冲突,这可能会在上传修改时造成问题,并可能覆盖彼此的修改。
使用 Git 版本系统,如 GitHub、GitLab 和 Bitbucket,我们可以实现自动部署。不同的开发人员使用不同的自动部署设置,这完全取决于他们自己的选择和难易程度。使用自动部署的一般规则是让团队轻松部署,并且不使用 FTP。
以下是部署设置的一般流程图:

如上图所示,我们有两个服务器:暂存或测试服务器和生产服务器。在暂存服务器上,我们有一个准确的网站副本,用于测试新功能和其他功能,而生产服务器上则有我们的实时网站。
现在,我们的版本库有两个主要分支:主分支和生产分支。主分支用于开发和测试,生产分支用于最终生产功能。请注意,生产分支只接受合并,不接受提交,这样生产环境才是完全安全的。
现在,假设我们想在应用程序中添加客户注册功能。我们将执行以下步骤:
-
要做的第一件事,也是最重要的一件事,就是从生产分支头创建一个新分支。我们把这个分支命名为客户注册。
-
现在,将所有新功能添加到客户注册分支,并在本地开发服务器上进行验证,同时将该分支合并到本地主分支。
-
将新分支合并到本地主分支后,将主分支推送到远程主分支。推送成功后,新功能将被移至暂存服务器。
-
现在,在暂存服务器上测试所有新功能。
-
当一切正常后,将远程主分支与远程生产分支合并。这将导致所有更改被移至生产分支,而合并将导致所有新更改被移至生产服务器。
-
类似上述的理想设置会使部署变得非常容易,一个完整的团队可以不受地理位置的限制在应用程序上工作。如果在部署过程中出现任何问题,可以很容易地退回到生产分支的旧版本。
持续集成(CI)是一种技术,团队中的所有成员都必须将自己的代码集成到一个共享仓库中,然后通过自动构建来验证团队成员的每次检查,以便在早期阶段捕捉错误和问题。
有几种工具可用于 PHP 的 CI,其中包括 PHPCI、Jenkins、Travis CI 等。
总结
在本章中,我们讨论了一些最佳实践,包括编码标准和样式、PHP 框架、设计模式、Git 和部署。此外,我们还讨论了用于测试类和库的 PHPUnit 框架。此外,我们还讨论了面向服务的设计,它在为应用程序创建 API 方面发挥着重要作用。
在本书中,我们学习了开发环境的设置,包括 Linux 服务器,特别是 Debian 和 Ubuntu,还讨论了 Vagrant。书中还列出了 PHP 的新功能,并附有示例代码。我们还详细阅读了用于提高应用程序和数据库性能的工具。此外,我们还讨论了应用程序的调试和压力或负载测试,以及编写高质量代码的一些最佳实践。
我们主要通过简单的示例总结了这些工具和技术,以便向读者介绍这些工具和技术。很有可能每种工具和技术都有自己的书籍,用于介绍更高级的用法。我们建议你继续关注这些工具和技术,并对其高级用法进行更多研究。祝你好运!