在 2022 年,无论您是设计师、开发人员、测试人员还是任何类型的开源贡献者,您都有多种本地 Web 开发环境可供选择。由于贡献者使用的大多数工具和平台恰好在许多不同的操作系统上运行,您甚至可能可以选择构建自己的环境。我是 DDEV 的维护者,DDEV 是一款开源工具,可在数分钟内启动本地 PHP、Node.js 和 HTML/JS 开发环境。以下是我认为您会喜欢它作为开发环境的 15 个理由。
1. 跨平台
DDEV 支持和测试,并为 Linux(amd64 和 Arm)、WSL2、Windows 和 macOS(M1 和 amd64)提供全自动测试套件。
有些工具要求您使用完全相同的 Docker 版本(它们甚至可能会自行安装),DDEV 可以与几年前的 Docker 版本一起使用,并与最新版本保持同步。或者,您可以使用 Colima 或安装在 WSL2 中的 Docker。
DDEV 的二进制文件在 macOS 和 Windows 上经过签名和公证,因此您在安装和使用 DDEV 时永远不必偷偷摸摸地绕过可怕的操作系统警告。
2. 性能
DDEV 团队认为,macOS 和 Windows 上的 DDEV 具有您在任何本地开发中都能获得的最佳性能,无论是在启动 DDEV(10 到 20 秒)还是在 Web 服务方面。在完全不需要设置的情况下,Mutagen 功能至少将 Web 服务速度提高了 10 倍。当然,在 Linux(包括 WSL2)上,它的性能非常出色。
3. 配置文件管理
DDEV 很高兴让您快速轻松地入门,甚至管理您的配置文件。您可以使用自己的存储库或按照 快速入门指南 之一创建新内容,您将立即启动一个项目。您还可以关闭配置文件管理,以便在需要更多自定义时微调团队的方法。
DDEV 的配置文件在未在 DDEV 上下文中使用时不会使用,因此如果错误地将它们部署到生产环境,您的项目也不会意外地具有 DDEV 设置。如果您为 Lando和 DDEV 设置了相同的项目,则 DDEV 设置不会破坏 Lando。
4. 受信任的 HTTPS
DDEV 使用 mkcert 允许您使用 本地受信任的 HTTPS 进行所有工作,就像它在现实世界中一样工作。您不必点击可怕的浏览器警告即可在开发中查看您的项目。
5. 数据库快照
DDEV 具有 ddev snapshot
功能,允许您快速捕获 数据库 的状态,然后快速恢复到不同的点。您可以为项目的不同分支命名快照。它比传统的导出和导入快得多。
6. 简单的单二进制安装,无需依赖项
DDEV 是用 Go 编写的。由于 Go 是一种相当新的语言,因此在社区参与方面可能有点不利,但对于跨平台支持来说,这是一个巨大的优势。Go 可以轻松进行跨平台构建,并且生成的独立二进制文件根本没有依赖项(Docker 除外)。无需安装库,无需维护 DLL。命令响应速度非常出色!
7. Xdebug 步进调试
很多人第一次使用 真正的步进调试环境 都是通过 DDEV,因为它真的非常容易。感谢 PHPStorm,完全无需设置。对于 VSCode 或 Codium,大约需要 2 分钟的设置。不再需要将打印语句插入到代码中!
8. 显式支持您的 CMS
DDEV 内置支持许多流行的内容管理系统 (CMS) 和平台。“显式支持”意味着存在设置管理以及为正在使用的特定平台定制的 NGINX 配置。以下是部分支持列表
- Drupal
- Backdrop
- WordPress
- TYPO3
- Magento
- Laravel
- Shopware
9. 集成和插件
虽然 DDEV 为您选择的 CMS 提供显式支持和可选的设置管理,但许多开发人员使用其他平台,包括 Symfony、Moodle、Mautic 等。DDEV 显式支持 NodeJS,用于处理和作为守护程序。
DDEV 还提供一个受支持、维护和测试的插件库,用于 Redis、Solr、Memcached、Elasticsearch、Mongo、Varnish 等。
10. Gitpod
您的本地开发环境甚至不必再是本地环境。DDEV 完全支持在 Gitpod 中使用,因此您可以将开发转移到云端。
11. 没有供应商锁定
DDEV 绝对没有供应商锁定。DDEV 平台背后的理念是,DDEV 可以作为拼图中适合您的部分插入到开发到部署的工作流程中。混合搭配!DDEV 是一个开源社区项目,可以与您可以使用的任何托管服务完美配合。
12. 尊重您的主机
DDEV 不会假设您仅将计算机(或容器)用于 DDEV。
太多本地开发工具在您未完全参与的情况下愉快地重新配置您的主机。它们中的不止一个编辑您的 /etc/exports
文件,您无法选择退出。其中一些实际上会在安装时用不同的版本覆盖您的 Docker 安装。DDEV 尝试确保在不太可能的情况下,您的计算机上需要进行任何更改,都是您自己进行更改,并且您有选择。
例如,HTTPS 支持需要运行 mkcert -install
一次。NFS 支持 需要一些额外的设置。由于几乎所有内容都在容器中运行,因此首先需要在主机上完成的工作非常少。
13. 社区
多年来,DDEV 社区一直非常出色,贡献了想法、代码和共享支持。有 开放收集 的 DDEV 服务、工具、代码片段、方法,以及来自世界各地用户的 博客和演示文稿 等等。
DDEV 顾问组为项目提供监督、指导和反馈。欢迎任何人加入。
14. 开源
DDEV 是庞大开源生态系统中的一个小齿轮。如果没有构成运行它的 Linux 容器的数百或数千个项目,它甚至不可能存在,当然,PHP 本身就是一个基本的上游项目。我们乐于向上游和下游项目做出贡献,例如
- Docker:DDEV 参与了 Docker 项目,因为 DDEV 用户始终在突破极限。我们深入参与 Docker 问题队列。
- Mutagen:当您在容器中编辑代码时,本地主机和容器环境之间需要进行大量同步。Mutagen 帮助弥合了 DDEV 用户的这一差距。
- mkcert:mkcert 工具允许 DDEV 在您的本地开发环境中提供受信任的 HTTPS。我们从中受益匪浅,并贡献了测试和错误修复。
- Xdebug:DDEV 与 Xdebug 配合良好,当然,当出现问题时,我们会立即听到。我们将我们的发现报告回 Xdebug 问题队列。
- deb.sury.org PHP 包:我们使用的 Debian PHP 包(在撰写本文时为 5.6 到 8.2)来自 deb.sury.org。由于 DDEV 社区是这些软件包的早期消费者,因此我们通常也参与 问题队列。
15. DDEV 保持更新
DDEV 始终与您需要的依赖项保持同步。例如,在撰写本文时,PHP 8.2.0 和 Drupal 10 均尚未发布,但两者在 DDEV 中都已获得支持数月。
16. 您自己的理由
我很想听听是什么让 DDEV 成为您的最爱,DDEV 团队始终倾听您未来想要什么。当然,我们也想听听当事情没有按照您想要或期望的方式工作时的情况。访问我们的 Git 存储库 做出贡献!
注意:这是最初出现在 ddev.com 上的 博客文章的更新版本。
4 条评论