utexas / utdk_localdev
基于 Docksal 的本地开发工具,用于 UT Drupal Kit。
3.1.0
2022-07-18 16:53 UTC
Requires
- brianium/paratest: ^6.2
- drupal/coder: ^8.3
- drupal/devel: ^4.0
- drupal/drupal-extension: ^4.1
- drupal/entity_browser: ^2.0
- drupal/page_manager: ^4.0
- drupal/restui: ^1.0
- drush-ops/behat-drush-endpoint: ^9
- drush/drush: ~10
- friendsoftwig/twigcs: ^3.2
- jcalderonzumba/mink-phantomjs-driver: ^0.3.1
- mglaman/drupal-check: ^1.1
- mikey179/vfsstream: ^1.6
- oomphinc/composer-installers-extender: ^2
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^8.4.1 || ^9
- squizlabs/php_codesniffer: 3.*
- symfony/phpunit-bridge: ^5.0
README
此存储库包含基于 Docksal 的工具,用于内部开发 UT Drupal Kit。它不应 用于 单个 Drupal Kit 网站的本地开发。
对于单个 Drupal Kit 网站的本地开发,请使用以下链接中列出的选项之一:https://drupalkit.its.utexas.edu/docs/getting_started/local_development.html
针对 ITS
入门
- 确保您已 安装了 Docksal
- 确保您拥有 PHP 的最新版本作为您的活动本地 php-cli 版本。如果您使用的是 Mac 且有 Homebrew,您可以使用 https://github.com/shivammathur/homebrew-php 来完成此操作
- 从您克隆存储库的根目录开始,运行
fin init
。这将启动容器。 - 然后,您可以使用
fin init-site
来安装 Drupal。 - 如果您需要重新安装网站,则无需重新启动堆栈或重新运行任何
setup.sh
,只需按需运行fin init-site
。 - 您可以使用
fin uli
来执行带有适当 URI 的drush uli
,自动管道输入以提供有效的管理员登录链接。
特别说明:Firefox
如果您使用 Firefox,则需要在浏览器识别本地生成的 SSL 证书之前安装 mkcert
。运行以下命令:
brew install mkcert
brew install nss
mkcert -install
运行测试
- 对于首次设置,请运行
fin test-init
。这将复制来自.docksal/drupal/testing-defaults
文件夹的默认文件,并将它们更新以匹配您当前的 Docksal 虚拟主机。 - 在运行测试之前,请确认 Docker 设置 > 开发中的功能(选项卡) > 在 Apple Silicon 上使用 Rosetta 进行 x86/amd64 仿真已选中复选框,并且已单击“应用并重启”按钮。(并确认根据帮助文本已启用“虚拟化框架”)
- 有 5 个命令可以运行测试
run-tests
:使用并行测试运行整个 UTexas 测试套件test <目录/文件>
:按顺序运行 PHPUnit 功能测试,使用标准的 PHP 命令参数test-js <目录/文件>
:按顺序运行 PHPUnit 功能 JS 测试,使用标准的 PHP 命令参数paratest-functional <目录/文件>
:使用标准 PHP 命令参数并行运行 PHPUnit 功能测试paratest-js <目录/文件>
:使用标准 PHP 命令参数并行运行 PHPUnit 功能 JS 测试
- 有关命令的更多详细信息,请参阅命令文件本身 -
.docksal/commands/test
和.docksal/commands/test-js
。它们都基本上以相同的方式工作,但配置为使用位于.docksal/drupal/testing
文件夹中的相应phpunit.xml
文件。 - 为确保功能正常,必须将
SIMPLETEST_BASE_URL
更新以匹配 Docksal 虚拟主机名称。在大多数情况下,在运行fin test-init
时会处理此问题。作为此命令的一部分,它将自动更新适当的phpunit.xml
文件。这通过 perl 执行基本的查找和替换操作,将默认的web
字符串替换为 Docksal 变量${VIRTUAL_HOST}
。 - 如果由于某种原因命令无法正常工作,您可以手动在位于
.docksal/drupal/testing/
的包含phpunit.xml
和phpunit-js.xml
的phpunit.xml
中更新SIMPLETEST_BASE_URL
。在 Docksal 中,您的主机名称与您的文件夹名称相匹配。因此,如果您将其克隆到名为drupalin
的文件夹中,您的 Docksal 基于的 URL 将为http://drupalin.docksal
,这是您的SIMPLETEST_BASE_URL
应设置的值。
弃用检查
运行以下命令以使用 drupal-check 进行 Drupal 9 兼容性检查:
vendor/bin/drupal-check path/to/directory
通过 Drupal Rector 进行弃用修复
运行以下命令以尝试使用 drupal-rector 自动化 Drupal 9 兼容性修复:
- 将配置文件添加到项目根目录
cp vendor/palantirnet/drupal-rector/rector-config-web-dir.yml rector.yml
- 分析代码
vendor/bin/rector process web/modules/contrib/[YOUR_MODULE] --dry-run
- 应用建议的更改
vendor/bin/rector process web/modules/contrib/[YOUR_MODULE]
设置不同的 PHP 版本
docksal.env
文件包含堆栈不同部分的某些示例定义。可以修改WEB_IMAGE
、DB_IMAGE
和CLI_IMAGE
以使用来自 Docksal 仓库的不同 Docker 镜像。PHP 版本由CLI_IMAGE
确定。您可以将值修改为新版本,并运行fin up
来刷新容器。Docksal 会检测到更改,如果新 Docker 镜像不存在于您的缓存中,则会下载新镜像,并重新加载运行新 PHP 版本的容器。例如,要在 PHP 7.3 上运行,可以将CLI_IMAGE
更新为CLI_IMAGE='docksal/cli:2.6-php7.3'
,然后运行fin up
,现在 CLI 容器正在运行 PHP 7.3。并且为了澄清,CLI 容器正在确定 Drupal 将使用哪个版本的 PHP,因为从本质上讲,Drupal 正在运行在这个容器上,并与WEB_IMAGE
和DB_IMAGE
容器进行编排,这些容器在幕后自动联网。有关更多信息,请参阅 Docksal 网站上的内容。
通过 PhpMyAdmin 访问数据库
- 您可以通过导航到
http://pma.{YOUR_DOCKSAL_SITE}
来访问 PhpMyAdmin,将{YOUR_DOCKSAL_SITE}
替换为站点 URL。
通过 SequelPro 访问数据库
- 如果您已安装 SequelPro,可以从站点的 docroot 运行
fin sequelpro
,它将在 SequelPro 中打开数据库!
访问 MailHog
- 您可以通过导航到
http://mail.{YOUR_DOCKSAL_SITE}
来访问 MailHog,将{YOUR_DOCKSAL_SITE}
替换为站点 URL。
覆盖 PHP / MySQL 设置
- 根据需要可以覆盖 PHP 设置。一些示例包含在
example-php-mysql-overrides
文件夹中。 - Docksal 会查找
.docksal/etc/php
中的 PHP 覆盖项 - 更多信息,请参阅 Docksal 文档 - Docksal 会查找
.docksal/etc/mysql
中的 MySQL 覆盖项 - 更多信息,请参阅 Docksal 文档
XDebug
这应提供“开箱即用”的 xdebugging 功能 测试步骤
- 将
XDEBUG_ENABLED=1
添加到您的docksal-local.env
,然后运行fin up
来重新加载启用 XDebug 的容器。如果您尚未设置php.ini
,则添加一个,或更新/etc/php/php.ini
中的设置以使用所需的 XDebug 首选设置(请参阅.docksal/example-php-mysql-overrides/etc/php/php.ini
),然后运行fin project restart
以应用新设置。注意:有XDEBUG_ENABLED=1
会使性能降低,因此如果未积极使用,请考虑将其设置为0
并运行fin up
以卸载它。 - 下载 VSCode 调试扩展
- 转到“调试”选项卡并开始调试:
- 当您在执行该代码的位置刷新网站时,它应该会跳转至 vscode
关于 composer.json 需求的说明
- 由于我们目前的 composer 框架存在限制,任何非根包的包都不会安装其
require-dev
依赖。因为我们使用 utexas_profile 作为包,所以定义在其中的require-dev
包不会安装,因为utexas_profile
不是根包。这就是为什么我们将它们复制到这个仓库中的requirements
,这样当安装此包时,它会负责正确安装测试和其他特定开发活动的依赖项。