首页 > 解决方案 > 执行 composer install 时突然出错

问题描述

我有一个执行 composer install 并返回此错误的 github 操作脚本:

Illuminate\Foundation\ComposerScripts::postAutoloadDump @php artisan package:discover PHP Fatal error: Uncaught ErrorException: Method ReflectionParameter::getClass() is deprecated in /home/runner/work/projsiteWebApp/projsiteWebApp/vendor/laravel/framework/src/照亮/容器/Container.php:853

这太糟糕了,因为这在前几天才起作用,我根本没有做任何改变。

当我在本地进行作曲家安装时,我使用 laravel 5.6 和 php 7.1.2 它工作正常

首先,我从我的 github 操作中收到了这条错误消息

生成优化的自动加载文件 Illuminate\Foundation\ComposerScripts::postAutoloadDump Carbon 1 已弃用,请参阅如何迁移到 Carbon 2。 https://carbon.nesbot.com/docs/#api-carbon-2 您可以运行 './vendor /bin/upgrade-carbon' 以获取更新 carbon 和其他依赖它的框架和库的帮助。@php artisan package:discover PHP Fatal error: Uncaught ErrorException: Method ReflectionParameter::getClass() is deprecated in /home/runner/work/projsiteWebApp/projsiteWebApp/vendor/laravel/framework/src/Illuminate/Container/Container.php: 826

然后我运行 vendor/bin/upgrade-carbon 到现在我得到了 carbon 2.0。使用这个命令,它将 laravel 升级到 5.8,所以现在我有了 laravel 5.8,现在错误消息在顶部。只抱怨 container.php 中被贬低的 getclass 方法

这是执行 composer install 的 yml 文件

name: PR WorkFlow

on:
  pull_request:
    branches:
      - master
      - staging

jobs:
  app-tests:
    runs-on: ubuntu-16.04
    steps:
      - uses: actions/checkout@v1
      - name: Copy .env
        run: php -r "file_exists('.env') || copy('.env.example', '.env');"
      - name: Install Composer Dependencies
        run: composer install
      - name: Install NPM Dependencies
         run: npm install
      - name: Generate key
        run: php artisan key:generate

标签: phplaravelcomposer-php

解决方案


我从 php 聊天中得到了一些帮助。根据我的 yml 文件执行 composer install 时,发现 github 正在运行 php 8.0。

我在作曲家安装步骤之前添加了这样的 ia setup php 步骤

  - name: Setup PHP
    uses: shivammathur/setup-php@master
    with:
      php-version: 7.1.25 

它奏效了!


推荐阅读