dpi / drupal-local
Requires
- composer/installers: ^2
- cweagans/composer-patches: ^1
- drupal/admin_toolbar: ^3.1.1
- drupal/core: ^10.1
- drupal/core-composer-scaffold: ^10.1
- drupal/core-project-message: ^10.1
- drupal/redis: 1.x-dev
- drush/drush: ^11.2.1@rc
Requires (Dev)
- davidrjonas/composer-lock-diff: ^1.7
- dealerdirect/phpcodesniffer-composer-installer: dev-master
- drupal/core-dev: 10.0.x-dev
- mglaman/phpstan-drupal: ^1.1.25
- mstrelan/teamcity-html: dev-main
- phpspec/prophecy-phpunit: ^2
- phpstan/phpstan: ^1.9
- phpstan/phpstan-deprecation-rules: ^1.1
- rector/rector: 0.14.x-dev
Conflicts
README
本地Drupal开发
此配置仅适用于本地开发。
配置
此配置已在以下环境中测试:
- Apple Silicon M1
- macOS Monterey
- 本地克隆
- Git
- Docker for Mac
- Composer
- Brew
使用
composer create-project dpi/drupal-local
cp .env.dist .env
并添加值。composer install
- 安装证书,请参阅下面的 本地TLS 部分。
- 可选地复制并从设置文件中移除
dist.
前缀。 docker-compose up -d
Drupal
Drupal可通过以下链接访问:https:///
安装
docker-compose exec php-cli bash
drush si standard -y
常见任务
# Set Claro as admin theme: drush theme:enable claro && drush config:set system.theme admin claro -y && drush cr
替代主机名
想要使用localhost以外的域名,例如DOMAIN.localhost吗?(与Firefox / Chrome自动兼容)或者通过编辑主机文件使用其他域名?
- 更新
.env
文件中的URL和主机名。 - 为新的主机名生成证书(请参阅 本地TLS)。
docker-compose up -d
Redis
# Enable Redis before copying files because new services depend on Redis.module.
drush en redis
cp ./app/sites/default/dist.settings.redis.php ./app/sites/default/settings.redis.php
cp ./app/sites/default/dist.services.redis.yml ./app/sites/default/services.redis.php
drush cr
配置导出/导入
配置YAML将被导出到 ./config/
,或者可以使用以下MySQL转储和自动恢复。
drush config:export drush config:import
本地TLS
为什么使用本地HTTPS?只因为!还有安全的Cookies!以及其他一些事情。
brew install mkcert nss
# Replace 'localhost' with alternative hostname, if desired.
mkcert -cert-file=certificates/primary.pem -key-file=certificates/primary-key.pem localhost
mkcert -install
可以在 traefik/config/certificates.yaml
中定义更多证书。
MySQL转储
从PHPCLI容器中转储MySQL数据库,以便可以重新启动配置。
drush sql-dump --result-file=../sql/init/dump.sql
如果您先执行 docker-compose down
然后重新启动应用程序,转储将被自动导入。应用程序准备就绪可能需要额外几秒钟。使用 docker-compose logs -f db
跟踪进度。
Mailhog
Mailhog将捕获Drupal发送的邮件。不需要配置Drupal,因为 sendmail_path
已配置。
Mailhog可通过以下链接访问:https:///mailhog/
Traefik
仪表板可通过以下链接访问:https:///traefik/
开发
PHPStan
可选地使用 cp phpstan.neon.dist phpstan.neon
定制PHPStan配置。默认使用 .dist 文件。
phpstan analyse
PHPCS
可选地使用 cp phpcs.xml.dist phpcs.xml
定制PHPCS配置。默认使用 .dist 文件。
phpcs
PHPUnit
可选地使用 cp phpunit.xml.dist phpunit.xml
定制PHPUnit配置。默认使用 .dist 文件。
phpunit
Blackfire
在 .env 中定义客户端和服务器ID和令牌。
Web分析
浏览器扩展
正常启用浏览器扩展。
导航到您希望分析页面,然后点击“分析!”按钮。
注意:如果您使用Firefox容器标签,则可能无法正常工作。在Firefox中进行分析时请使用无容器标签。
Docker compose
docker-compose exec blackfire blackfire curl http://nginx:8080/
Blackfire CLI应用程序
Blackfire客户端(blackfire
)已内置到PHP CLI容器(Dockerfile-php-cli
)中
docker-compose exec php-cli bash
blackfire curl http://nginx:8080/
CLI应用程序分析
docker-compose exec php-cli bash
blackfire run drush foo