【问题标题】:Laravel forge after each deploy having to use composer update每次部署后 Laravel forge 必须使用 composer update
【发布时间】:2022-12-14 02:37:19
【问题描述】:

所以我有一个帮助文件:App\helpers.php,在我的 JSON 中添加如下:

"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    },
    "files": [
        "app/helpers.php"
    ]
},

在这个帮助文件中,我有一个简单的 userName() 方法来显示用户的全名:

function userName()
{
    return auth()->user() ? auth()->user()->present()->name : '';
}

在我的本地环境中一切正常。但是每次我推送到我的生产环境时,我都会收到错误:

Call to undefined function userName()

每当我在 Laravel Forge 中执行 composer update 部署后,错误就会消失并且我的网站可以完美运行。

我从未在任何其他项目中遇到过这个问题,并且我以完全相同的方式使用 helpers.php 文件。

我的问题是,为什么会发生这种情况,当然我的第二个问题是,如何解决这个问题?

【问题讨论】:

    标签: php laravel deployment forge


    【解决方案1】:

    如果您查看 forge 部署脚本,您会看到以下行:

    $FORGE_COMPOSER install --no-dev --no-interaction --prefer-dist --optimize-autoloader
    

    --no-dev 标志将跳过你的 autoload-dev 规则,所以你只需要将 helper 引用移动到 autoload 而不是 autoload-dev

     "autoload": {
        "psr-4": {
            "App\": "app/",
            "Database\Factories\": "database/factories/",
            "Database\Seeders\": "database/seeders/"
        },
        "files": [
            "app/Helpers.php"
        ]
    },
    

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2016-09-08
      • 2016-09-22
      • 2019-10-05
      • 2016-04-29
      • 2014-10-25
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多