teamdeeson/d8-quickstart

Drupal 8项目的快速启动模板。

dev-master 2020-04-10 11:08 UTC

This package is auto-updated.

Last update: 2024-09-04 18:32:11 UTC


README

管理Drupal 8站点首选的方式是使用composer,Drupal Composer项目有助于将Drupal核心与composer集成。

此存储库围绕Drupal Composer提供快速启动包装,包括Deeson Drupal 8项目的常用配置和推荐模块。

快速启动项目使用composer进行依赖管理,包括Drupal核心、贡献库和第三方库。在开发过程中,docroot/的内容应被视为可替换的,可以重新编译存储库中的内容。

我们使用DockerDocker compose来管理本地开发,并且此存储库包含一些默认配置,用于与Docker一起工作。当然,您也可以使用替代方案,但可能需要额外的配置。

为了使drush与Docker一起工作,您需要将以下行添加到您的/etc/hosts文件中:127.0.0.1 docker.local

创建新的Drupal站点

您不需要克隆此存储库,我们的快速启动是使用composer检查出来的。

首先您需要安装composer

然后您可以使用composer创建一个新的项目,项目名称应简短且不含标点符号(例如:myproject)

composer create-project teamdeeson/d8-quickstart <project-name> --stability dev --no-interaction

现在您应该创建一个新的git仓库,并提交所有不由.gitignore文件排除的文件。

git init
git add .
git commit -m "Created the project."

所需配置

您应该检查所有服务和设置文件,并根据需要做出任何修改。以下至少需要做出以下修改

.env:在此处添加您的项目名称,使用与composer相同的名称(例如:myproject)

src/settings/environment.inc:配置您的域名

src/settings/01-core.settings.inc:配置哈希盐。

src/settings/02-shield.settings.inc:配置基本认证访问详情,以保护您的开发站点。

构建和安装

在Deeson,我们使用Makefile来编排任何额外的任务,例如构建依赖关系和运行测试。

这确保了我们有一个通用的机制,用于在所有项目中运行任务。

可以使用包含的Makefile构建项目。

make

将基于假设的环境构建项目。这将创建docroot/文件夹并构建您的网站。

您可以使用ENVIRONMENT变量显式指定环境,这将添加或删除开发依赖项

make build ENVIRONMENT=dev
make build ENVIRONMENT=prod

您也可以在需要时安全地删除您的docroot

make clean

首次运行构建后,您可以使用以下命令设置和运行Docker环境。

make start

现在您应该有多个正在运行的Docker容器,包括nginx、php、mariadb。运行以下命令来检查。

$ docker container ls
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                                      NAMES
01b7db232917        wodby/drupal-nginx:8-1.13-2.4.2   "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        80/tcp                                     d8-quickstart_nginx
b463d169feeb        deeson/fe-node                    "bash -c 'yarn insta…"   3 minutes ago       Up 3 minutes                                                   d8-quickstart_fe-node
f487f9c5ae93        wodby/drupal-php:7.1-2.4.3        "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        9000/tcp                                   d8-quickstart_php
fd56e451e51d        wodby/mariadb:10.1-2.3.3          "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        3306/tcp                                   d8-quickstart_mariadb
53d6dcb35ee1        mailhog/mailhog                   "MailHog"                3 minutes ago       Up 3 minutes        1025/tcp, 8025/tcp                         d8-quickstart_mailhog
fb0ebe6aae0e        wodby/redis:3.2-2.1.0             "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        6379/tcp                                   d8-quickstart_redis
834f7edc1c46        wodby/drupal-solr:8-6.4-2.0.0     "docker-entrypoint-s…"   3 minutes ago       Up 3 minutes        8983/tcp                                   d8-quickstart_solr
c18f97249a71        deeson/fe-php                     "docker-php-entrypoi…"   3 minutes ago       Up 3 minutes                                                   d8-quickstart_fe-php
2ffcf9dcf72d        traefik:1.6.6-alpine              "/entrypoint.sh --do…"   23 hours ago        Up 20 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik

输出应包含如下一行

2ffcf9dcf72d        traefik:1.6.6-alpine            "/entrypoint.sh --do…"   21 hours ago        Up 18 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik

这是docker-proxy容器。您必须运行它才能在浏览器中查看网站。有关设置说明,请参阅依赖项部分。

cd docker-proxy
make start

您现在应该能够在谷歌浏览器中访问一个纯 Drupal 网站,网址为 https://d8-quickstart.localhost。由于 Chrome 会抱怨 SSL 证书未签名,您需要添加一个安全例外。

如果您想使用其他浏览器,您必须将条目添加到您的 /etc/hosts 文件。

127.0.0.1 d8-quickstart.localhost

您现在可以运行 Drupal 安装,无论是通过界面还是使用命令行。

make install

将会安装网站及其相关配置。您将被提示进行网站安装的选项。如果您继续,这将删除您的现有网站数据库。

您可以使用以下命令在任何时候停止 Docker 环境。

make stop

您的网站文件和数据库将存储在 Docker 外的 .persist 隐藏目录中。

使用 Composer 管理依赖项

您应该通过 Composer 管理所有依赖项。这包括任何现成的代码,例如 Drupal 核心、贡献模块和主题以及任何第三方库。

要添加模块(例如,重定向)

composer require drupal/redirect

要更新模块(例如,重定向)

composer update drupal/redirect

要更新 Drupal 核心

composer update drupal/core --with-dependencies

您应该将 composer.lock 文件提交到存储库,这将保证任何后续构建都将使用所有依赖项的确切版本。

有关详细信息,请参阅 Drupal Composer 项目文档

https://github.com/drupal-composer/drupal-project#composer-template-for-drupal-projects

Composer 项目使用指南

https://getcomposer.org.cn/doc/01-basic-usage.md

Xdebug

在 Xdebug 连接工作之前,您需要运行 sudo ifconfig lo0 alias 10.254.254.254。这通常在您登录到开发机器时需要,但定期运行是安全的。

运行测试

此存储库包含运行 Behat 和 PHPUnit 测试套件的起点,以及使用 PHPCS 运行 Drupal 编码标准检查。

PHPUnit 测试应在您自定义模块的 tests/ 子目录中定义。

Behat 测试应在项目根目录的 behat-tests 目录中定义。

make test

将运行项目的所有自动化测试。

项目结构

behat-tests/

这包含您项目的所有 Behat 测试。

config/

这包含 Drupal 的 CMI 配置文件。

docroot/

此目录包含编译内容,通常不应提交到您的存储库。

drush/

这包含您的 drush 网站别名文件。

src/

这包含您的所有项目源代码。如下所示

src/frontend/

适用于所有前端需求。这使用我们的前端设置,您可以在以下位置找到更多信息:https://github.com/teamdeeson/deeson-webpack-config

src/modules/

这是您放置自定义模块的地方。

src/modules/ 中的任何内容都将可用在 docroot/modules/custom/

src/services/

您可以在这里定义您的服务 YAML 文件。

src/settings/

这包含 Drupal 网站设置,从 settings.php 中提取,如下:http://handbook.deeson.co.uk/development/drupal8/#settings-file-configuration

这已从博客文章中提到的 sites/default/settings/ 或 sites/conf/ 中移除。

settings.php 将在 docroot/sites/default/ 中提供。所有其他文件都将通过 settings.php 在原地包含。

src/themes/

这是您放置自定义主题的地方。

src/themes/ 中的任何内容都将可用在 docroot/themes/custom/

src/themes/deeson_frontend_framework

Drupal 与 src/frontend 之间的默认连接。您的主题可以继承自这个连接,或者遵循https://github.com/teamdeeson/deeson-webpack-config中的说明自行操作(这并不复杂)。

scripts/

这个文件夹用于存放您可能希望添加的任何编译或部署脚本。

这些脚本需要以常规方式包含在您的设置文件中。

$settings['container_yamls'][] = dirname(DRUPAL_ROOT) . '/src/services/development.services.yml';

vendor/

这是 composer 供应商目录,包含项目依赖、工具和库。这个目录应从您的仓库中排除。

web/

这个目录和 docroot/ 目录被符号链接到同一位置,以提高兼容性,也应从您的仓库中排除。

有用的 Docker 命令

您可以使用 docker-compose 工具作为常用 Docker 命令的快捷方式。要在某个容器中运行命令,可以使用

docker-compose exec <container-name> <command>

例如,要在一个数据库容器(mariadb)中启动 mysql 客户端,请运行

docker-compose exec mariadb mysql

您也可以使用更标准的 Docker 命令。

要列出活跃的 Docker 实例,在项目根目录中运行以下命令

docker-compose ps

要获取 PHP 容器内的 bash 终端,可以使用以下命令

docker-compose exec php

要将导出的站点数据库导入到数据库容器中(如果您没有安装 pv,可以使用 brew install pv 来安装),请运行以下命令

pv database_export_filename.sql | docker-compose exec -T mariadb mysql -udrupal -pdrupal drupal

请注意,此方法比 drush 方法快 33%,drush 方法为 pv database_export_filename.sql | drush @docker sql-cli

依赖项

我们的 Docker 代理应该已安装并运行。有关安装说明,请参阅此处:https://bitbucket.org/deesongroup6346/d4d-traefik-proxy

已知问题

错误:网络代理声明为外部代理,但找不到。请手动使用 'docker network create proxy' 创建网络并重试。

Docker 代理需要运行。请参阅上述依赖项。

管理配置

D8 快速入门使用 Config Split 将本地开发配置与默认配置分离。

导出配置

默认配置将由 drush @docker cex 导出至 ./config/default

当运行 drush @docker cex 时,本地开发配置将自动导出到 ./config/local

您可以在 Drupal 8 管理区域中控制被认为本地配置的内容。

导入配置

您可以使用 drush @docker cim 导入站点配置。

默认配置总是会被导入。

如果环境是本地开发环境,则也会导入本地配置。

使用 Drush 与 Acquia

当与 Drush 和 Acquia 远程主机一起工作时,您可能需要在 ~/.ssh/config 中添加以下内容

Host *.acquia-sites.com
   LogLevel QUIET