sergeant / drupal-project

SGT 项目模板,用于 Drupal 10 项目,支持 Composer

安装: 504

依赖者: 0

建议者: 0

安全性: 0

星级: 4

关注者: 1

分支: 941

类型:项目

7.1.0 2024-01-05 17:58 UTC

README

这是Composer 模板的分支,用于 Drupal 项目。所有关于此项目的文档都可以在提供的网址上找到。以下注释是对源文档的补充/覆盖。从分支项目中更新的内容必须手动实施。

主要维护者:Zan Vidmar (联系)

维护者:Aljosa Furlanic (联系)

使用方法

访问

为了成功安装 Sergeant 模块,需要读取 Sergeant 私有仓库的权限。

Sergeant 工作流程

Sergeant Drupal 项目初始化文章(私有)

安装 (!)

使用命令行生成器初始化项目

  1. 命令行生成器

仅使用 composer 初始化项目

首先需要安装 composer

  1. 之后,您可以创建项目
composer create-project sergeant/drupal-project:dev-10.x-sgt some-directory --stability dev --no-interaction

some-directory 替换为您希望项目所在的目录。

如果某些内容没有正确安装,请先尝试清除 composer 缓存(composer clear-cache),然后报告问题。

  1. 使用安装配置文件安装 Drupal(所有操作都由 sgt_installation_profile 模块处理)。

  2. 创建新的清单 /admin/config/sergeant/sgt_checklist 并通过所有清单项。

设置

  • 对于全局设置,请使用 /web/sites/*/settings.php
  • 对于环境设置,请使用 /web/sites/*/settings.local.php
  • 对于开发服务,请使用 /web/sites/default/local.services.yml (请勿在生产环境中使用!)

开发 local.services.yml 示例

parameters:
    session.storage.options: { gc_probability: 1, gc_divisor: 100, gc_maxlifetime: 200000, cookie_lifetime: 2000000 }
    twig.config: { debug: true, auto_reload: true, cache: true }
    renderer.config: { required_cache_contexts: ['languages:language_interface', theme, user.permissions], auto_placeholder_conditions: { max-age: 0, contexts: [session, user], tags: {  } } }
    http.response.debug_cacheability_headers: true
    factory.keyvalue: {  }
    factory.keyvalue.expirable: {  }
    filter_protocols: [http, https, ftp, news, nntp, tel, telnet, mailto, irc, ssh, sftp, webcal, rtsp]
    cors.config: { enabled: false, allowedHeaders: {  }, allowedMethods: {  }, allowedOrigins: ['*'], exposedHeaders: false, maxAge: false, supportsCredentials: false }

更新 Drupal 项目本身

这将更新 composer.json 文件中的某些设置以及一些其他与 Drupal 项目相关的文件。更新由 sergeant/sgt_drupal_project_update 处理;

要更新 Drupal 项目到最新版本:composer update_sgt_drupal_project

或更新到特定版本:composer update_sgt_drupal_project v3.0.5

保持 composer.json 文件中的 "repositories" 本地不变

如果您不希望更新 "repositories" 数据(例如:如果您仅更改特定项目的库版本)使用:添加 keep-local-repositories-data=true 标志。

示例 composer update_sgt_drupal_project keep-local-repositories-data=true

更新 (!)

每次当 Drupal 核心更新时,我们都必须更新 Drupal 模块 Sergeant 核心(sgt_installation_profile)。Sergeant 安装配置文件包含所有当前活动的 Drupal 核心和模块补丁,以及 Sergeant 安装配置文件所要求的模块。所有其他补丁必须在项目级别处理。

此模板为分支 drupal-composer/drupal-project 添加了什么

默认要求的包(及其依赖树)

以下依赖树中列出的所有模块都是默认要求的。sgt_installation_profille 模块处理所有其他所需的贡献 Drupal 模块。

Sergeant Drupal 项目(composer 项目)

  • sgt_core(模块)
    • sgt_checklist
      • entity_creator_api
    • sgt_handbook
    • sgt_paragraphs
      • sgt_field_paragraph_settings
  • sgt_ignite(主题)
    • sgt_ignite_components
    • sgt_ignite_features
  • sgt_installation_profille(配置文件)
    • 所有必需的 Drupal 模块

包含的仓库

这仅包括包源,安装是可选的,并且始终由开发者执行。

  • 军士/sgt_devel
  • 军士/sgt_filter_query_api
  • 军士/sgt_media_colorbox_field_formatter
  • 军士/sgt_media_crop
  • 军士/sgt_tiles

包含的军士私有仓库

  • 军士/sgt_entity_creator_api (仓库)
  • 军士/sgt_checklist (仓库)
  • 军士/sgt_core (仓库)
  • 军士/devel (仓库)
  • 军士/sgt_drupal_project_update (仓库)
  • 军士/sgt_field_paragraph_settings (仓库)
  • 军士/sgt_filter_query_api (仓库)
  • 军士/sgt_handbook (仓库)
  • 军士/sgt_ignite (仓库)
  • 军士/sgt_ignite_components (仓库)
  • 军士/sgt_ignite_features (仓库)
  • 军士/sgt_installation_profile (仓库)
  • 军士/sgt_media_colorbox_field_formatter (仓库)
  • 军士/sgt_media_crop (仓库)
  • 军士/sgt_paragraphs (仓库)
  • 军士/sgt_tiles (仓库)

所需的贡献包(JavaScript库)

  • harvesthq/chosen 通过 sgt_installation_profille => drupal/chosen 需要。Drupal项目composer.json文件包括drupal/chosen读取文件中提到的需求。(仓库文档

包含的贡献包(JavaScript库)

  • gfranko/jquery.tocify.js composer require gfranko/jquery.tocify.js仓库文档
  • jackmoore/colorbox composer require jackmoore/colorbox仓库文档

Composer文件修改

安装器路径

安装器路径更改为非标准路径,以满足军士工作流程与军士模块和军士Ignite主题。

所有军士模块都放置在web/modules/sgt/目录中。

"web/modules/sgt/{$name}": [
    "sergeant/sgt_checklist",
    "sergeant/sgt_core",
    "sergeant/sgt_devel",
    "sergeant/sgt_field_paragraph_settings",
    "sergeant/sgt_filter_query_api",
    "sergeant/sgt_handbook",
    "sergeant/sgt_ignite_components",
    "sergeant/sgt_ignite_features",
    "sergeant/sgt_media_colorbox_field_formatter",
    "sergeant/sgt_media_crop",
    "sergeant/sgt_paragraphs",
    "sergeant/sgt_tiles"
],

模块文件夹的结构

  • contrib web/modules/contrib/(用于Drupal贡献模块,git忽略,由composer管理)
  • custom web/modules/custom/(用于每个项目的Drupal自定义模块,git管理)
  • sgt web/modules/sgt/(用于军士Drupal贡献模块,git忽略,由composer管理)

军士Ignite主题放置在web/themes/sgt_ignite/目录中。

"web/themes/sgt_ignite/ignite_core": [
    "sergeant/sgt_ignite"
],

军士安装配置文件放置在web/profiles/sgt/目录中。

"web/profiles/sgt/{$name}": [
    "sergeant/sgt_installation_profile"
]

其他修改

  • scripts/composer/ScriptHandler.php文件中,将自定义文件夹("private","tmp")添加到$dir数组中。
  • extra部分添加了"enable-patching": true以接受依赖项的补丁(来源:composer-patches
  • 使用chmod 0775而不是0777创建文件目录
  • ScriptHandler(与相关的json自动加载=>类映射)具有额外的功能,可以将所有配置文件从Drupal标准配置文件复制到军士安装配置文件。

PHP版本

本模板默认需要至少PHP 8.1

DDEV设置

故障排除

如果拒绝访问私有仓库,可以通过ddev auth ssh命令将密钥添加到ddev容器中