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

Laravel Forge部署后需执行composer update才能正常使用helper函数问题

问题原因

你把助手文件的自动加载配置放在了autoload-dev节点下,这个配置仅在开发环境生效。生产环境部署时,通常会执行composer install --no-dev --optimize-autoloader这类命令,--no-dev参数会跳过所有autoload-dev里的配置,导致app/helpers.php不会被自动引入,自然找不到userName()函数。

而执行composer update后恢复正常,是因为默认情况下composer update不会自动带上--no-dev参数,会加载autoload-dev的配置,助手文件被引入,函数就能正常调用了。

解决方法

1. 调整composer.json的自动加载配置

把helpers.php从autoload-dev的files数组移到autoload节点下,这样不管是开发还是生产环境,都会自动加载这个文件:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            // 保留其他原有psr-4配置
        },
        "files": [
            "app/helpers.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
        // 移除原来autoload-dev里的files配置
    }
}

2. 更新自动加载映射

修改完composer.json后,本地执行:

composer dump-autoload

生产环境部署时,确保执行的composer命令包含更新自动加载的步骤,比如:

composer install --optimize-autoloader --no-dev

额外提示

  • 不要把生产环境需要用到的文件放在autoload-dev里,这个节点是专门用来存放开发、测试相关的依赖和配置的。
  • 检查你的Laravel Forge部署脚本,确认composer命令是否正确添加了--no-dev参数,避免后续部署再出现类似问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:45:27