teamdeeson/d9-quickstart

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

dev-master 2020-09-30 09:44 UTC

This package is auto-updated.

Last update: 2024-09-17 13:48:21 UTC


README

此项目是Deeson网页开发机构的标准和最佳实践,用于快速启动Drupal 9网站的工具。

该项目适用于MacOSX和Linux,但未在其他操作系统上进行测试。它可能不适用于Windows。

依赖关系

创建新的Drupal 9网站

使用以下命令创建新的Drupal 9项目。将<project-name>替换为您自己的名称。保持项目名称简短且不包含标点符号(例如:myproject)

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

现在应切换到项目目录,并创建一个新的git仓库,提交所有未被.gitignore文件排除的文件。

cd <project-name>
git init
git add .
git commit -m "Created the project."

所需配置

现在应根据您的需求配置项目。以下是最基本的修改

.env:更改项目的PROJECT_NAME和PROJECT_BASE_URL(URL必须以.localhost结尾)。创建一个新的HASH_SALT字符串。

src/settings/environment.inc:在此处配置您知道的远程域名。

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

构建和安装

现在可以使用包含的Makefile首次构建项目

make

这将创建docroot/文件夹并构建您的网站。

它应该以一次性登录URL结束,您可以将此URL复制到Chrome浏览器中访问您的新Drupal网站。

启动和停止项目。

第一次运行构建后,您可以使用以下命令随时停止项目

make stop

使用以下命令重新启动项目

make start

浏览器访问

您可以在Chrome中访问localhost域名而无需进行任何更改。如果想要使用其他浏览器,则需要在此项目的/etc/hosts文件中添加一个条目(将项目URL替换为您自己的URL)

127.0.0.1 project.localhost

使用Composer管理依赖关系

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

添加模块(例如,redirect)

composer require drupal/redirect

更新模块(例如,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

运行项目所有自动测试的命令。

项目结构

docroot/

此目录包含编译后的内容,通常不应将其提交到您的仓库。

drush/

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

src/

这里包含您项目的所有源代码。具体如下

src/config/

这里包含Drupal的CMI配置文件。

src/frontend/

满足您前端的所有需求。这里使用了我们的前端设置,您可以在此找到相关信息:https://github.com/teamdeeson/deeson-webpack-config

src/modules/

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

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

src/settings/

这里包含Drupal站点的设置,是从settings.php中提取的。

src/themes/

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

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

src/themes/deeson_frontend_framework

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

这些需要以常规方式包含到您的设置文件中

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

vendor/

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

web/

这和docroot/被链接到同一位置以实现更广泛的兼容性,也应从您的仓库中排除。

Docker命令

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

docker-compose ps

您可以使用以下命令访问实时日志

make logs

或者使用以下命令访问特定容器的日志

docker-compose logs php -f

如果您想删除站点并重新运行安装过程,可以使用

make clean && make install

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

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

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

docker-compose exec mariadb mysql

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

docker-compose exec php /bin/bash

要将导出的站点数据库导入到数据库容器中(如果您没有安装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

已知问题

Deeson Docker代理没有运行。

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

Docker代理需要运行。请参见上面的依赖项。

使用Drush与Acquia

当使用Drush和Acquia远程主机时,您可能需要将以下内容添加到您的~/.ssh/config中

Host *.acquia-sites.com
   LogLevel QUIET