You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 9.3.x中如何通过Composer自动加载类并运行脚本?

Drupal 9.3.x 自定义Composer脚本自动加载与配置方案

核心问题分析

报错根源是类命名空间与Composer自动加载规则不匹配,或是自动加载配置未正确指向类文件路径。先确认Starter.php的命名空间是否符合Drupal规范:

// web/modules/custom/d9_starter_kit/src/Starter.php
namespace Drupal\d9_starter_kit;

class Starter {
  public static function doStart() {
    // 你的文件复制、重命名、编辑逻辑
  }
}

正确配置步骤(推荐直接修改项目根目录composer.json)

无需在自定义模块内单独创建composer.json,直接在项目根的composer.json中完成配置即可:

1. 配置自动加载规则

在项目根composer.json的autoload字段下添加psr-4规则,指向自定义模块的src目录:

{
  "autoload": {
    "psr-4": {
      "Drupal\\d9_starter_kit\\": "web/modules/custom/d9_starter_kit/src/"
    }
  }
}

2. 注册Composer脚本

在项目根composer.json的scripts字段中添加自定义脚本,直接调用类的静态方法:

{
  "scripts": {
    "starter:init": "Drupal\\d9_starter_kit\\Starter::doStart"
  }
}

3. 更新自动加载映射

配置完成后必须执行以下命令,让Composer生成新的自动加载映射文件:

composer dump-autoload

4. 运行自定义脚本

执行以下命令即可触发自动化逻辑:

composer starter:init

常见错误排查

  • 命名空间错误:确保命名空间Drupal\d9_starter_kit与模块机器名d9_starter_kit完全一致,Drupal模块的命名空间规范为Drupal\{模块机器名}
  • 文件路径错误:确认psr-4配置中的路径是从项目根目录到模块src的相对路径,层级不要写错
  • 未执行dump-autoload:每次修改自动加载配置后必须执行该命令,否则Composer不会更新自动加载映射

内容的提问来源于stack exchange,提问作者Giuseppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:35:36