teamdeeson / d9-quickstart
Drupal 9项目的快速启动模板。
Requires
- composer/installers: ~1.9.0
- cweagans/composer-patches: ^1.6.5
- drupal/coffee: ^1.0
- drupal/components: ^2.0@beta
- drupal/config_filter: ^2.0@rc
- drupal/config_ignore: 2.x-dev
- drupal/config_split: ^1.5@rc
- drupal/core: ^9.0.0
- drupal/core-composer-scaffold: *
- drupal/entity: ^1.0
- drupal/field_group: 3.x-dev
- drupal/focal_point: ^1.4
- drupal/masquerade: ^2.0@beta
- drupal/media_entity_download: ^2.0
- drupal/metatag: ^1.13
- drupal/paragraphs: ^1.12
- drupal/pathauto: ^1.18
- drupal/redirect: ^1.16
- drupal/redis: ^1.4
- drupal/reroute_email: 2.x-dev
- drupal/save_edit: ^1.3
- drupal/scheduler: ^1.3
- drupal/warden: ^3.0
- drush/drush: ^10.3.1
Requires (Dev)
- drupal/core-dev: ^9
- drupal/stage_file_proxy: ^1.0
Conflicts
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