wunderio/lando-drupal

Wunder为Lando Drupal项目提供的可扩展模板。

安装次数: 1,220

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 19

语言:Shell

类型:composer-plugin


README

这是一个为Lando Drupal项目定义基础Lando设置的模板。它创建 .lando.base.yml 文件和 .lando/core/ 文件夹。您仍然需要 .lando.yml 来定义最小化的 namerecipe 参数。

安装

  1. 将您的当前 .lando/* 文件移动到 .lando/custom/ 并更改 .lando.yml 中的引用。下一步将添加新的 .lando/core/ 文件夹。

  2. 安装composer包

    composer require wunderio/lando-drupal --dev
    
  3. 将更改添加到GIT

    git add .lando/core/ &&
    git add .lando/custom/ &&
    git add drush/sites/ &&
    git add .lando.base.yml &&
    git add -p composer.json composer.lock
    
  4. 根据您的项目,创建或更新您的 .lando.yml。

    如果您正在创建新的项目,则需要创建包含以下内容的 .lando.yml 文件

    name: your-project-name
    recipe: drupal10
    

    如果您的 .lando.yml 已经存在,则删除 .lando.base.yml 中存在的任何内容。

  5. 可选地启用自定义扩展,例如node,然后重新构建Lando

    lando load-wunderio-lando-drupal-extensions node
    lando rebuild
    

    所有可用的扩展都列在 https://github.com/wunderio/lando-drupal/tree/main/extensions

  6. 由于无法从 .lando.yml 覆盖它们,我们需要迁移构建步骤。例如,在当前的设置中,在 .lando.base.yml 文件中我们有以下内容

    services:
      appserver:
        build:
          - "/app/.lando/core/_run-scripts.sh services-appserver-build.sh"
    

    上述代码执行了来自 .lando/core/ 文件夹的 services-appserver-build.sh 脚本,并运行 composer install

    如果现在在您的 .lando.yml 中您也有相同的构建步骤中的 composer install,那么它也会被执行。基本上Lando会将命令堆叠在构建步骤中。

    services:
      appserver:
       build:
         - "composer install"
    

    为了解决这个问题,建议的做法是从 .lando.yml 中删除构建步骤。取而代之的是,将 .lando/core/services-appserver-build.sh 文件复制到您的 .lando/custom/ 文件夹。然后,根据您的偏好进行自定义。在 .lando.base.yml 中的这一行 - '/app/.lando/core/_run-scripts.sh services-appserver-build.sh' - 将首先检查 services-appserver-build.sh 是否存在于 .lando/custom/ 文件夹中。如果没有找到,它将从 .lando/core/ 中执行它。

概述

配置概述

  • 名称: drupal-project
  • 食谱: drupal10

PHP和Web服务器

  • PHP版本 8.1
  • Web服务器: Nginx
  • Webroot: web

数据库

  • 数据库版本: MariaDB 10.3

Composer

  • Composer版本 2

Xdebug

  • Xdebug模式: 关闭(通过 lando xdebug 命令启用)

自定义配置文件

  • 自定义PHP配置文件:.lando/core/php.ini
  • 自定义数据库配置文件:.lando/core/my.cnf

工具命令

  • composer: 运行Composer命令。
  • grumphp: 运行GrumPHP命令。
  • phpunit: 使用自定义选项运行PHPUnit命令。
  • regenerate-phpunit-config: 生成新的PHPUnit配置。
  • varnishadm: 运行varnishadm命令。
  • xdebug: 以所选模式加载Xdebug。

定义为脚本的工具命令(.lando/core/tooling-*.sh 文件)可以通过将它们添加到 .lando/custom/ 文件夹中并用相同的名称覆盖。

  • .lando/core/tooling-phpunit.sh
  • .lando/core/tooling-regenerate-phpunit-config.sh
  • .lando/core/tooling-xdebug.sh

服务

  • appserver: 主要应用程序服务器的配置。
    • 将时区设置为 "Europe/Helsinki"。
    • 定义环境变量,包括 HASH_SALT、ENVIRONMENT_NAME、DB_NAME_DRUPAL、DB_USER_DRUPAL、DB_PASS_DRUPAL、DB_HOST_DRUPAL、DRUSH_OPTIONS_URI、VARNISH_ADMIN_HOST、XDEBUG_MODE 和 PHP_IDE_CONFIG。
    • 提供无头 Chrome 的 PHPUnit 设置。
  • adminer: Adminer 数据库管理工具.
  • chrome: 运行 Chrome WebDriver 的配置。
  • mailhog: 邮件测试工具 MailHog 的配置。
  • proxy: 代理设置的配置。

定义为脚本(.lando/core/services-*.sh 文件)的服务命令可以被添加到 .lando/custom/ 文件夹中的同名文件覆盖。目前有 2 个脚本

  • .lando/core/services-adminer-run-as-root.sh
  • .lando/core/services-appserver-build.sh

自定义事件

  • post-db-import: 数据库导入后重建 Drupal 缓存并登录本地用户的自定义事件。

环境文件

  • 使用位于 .lando/contrib/.env 的环境文件。

Lando 版本

  • 已测试与 Lando 版本 v3.18.0 兼容。

注意

  • 此 Lando 配置是为 Drupal 10 项目设计的。
  • 它包括自定义 PHP 和数据库配置文件。
  • 提供 Composer、GrumPHP、PHPUnit、Varnishadm 和 Xdebug 的工具命令。
  • 为主应用程序服务器、Chrome WebDriver 和 MailHog 配置了服务。
  • 定义了数据库导入后执行操作的自定义事件。
  • 配置已在 Lando 版本 3.18.0 上测试。
  • 请确保根据您的具体项目和环境调整任何路径或配置。

实验性

快照工具

基于 DDEV 快照工具,我们在此也添加了实验性工具。这远不是一个像 DDEV 中的那样完整的工具集。希望有一天它会被正式添加到 Lando 中——我们已在 lando/mariadb#37 上创建了一个问题

创建命名快照

lando snapshot --name foobar

或创建带时间戳的快照

lando snapshot

恢复名为 foobar 的快照

lando snapshot restore foobar
lando restart