Laravel 7 - Класс ha sh не существует - PullRequest
1 голос
/ 10 июля 2020

У меня есть недавно созданное приложение Laravel с установленным в нем Backpack. Я изо всех сил пытаюсь развернуть его в Google Cloud в течение последних нескольких дней.

Я использую Laravel 7, я пытаюсь развернуть его в Google Cloud App Engine и получаю ошибку Class hash does not exist. Несколько раз я также получал Class view does not exist.

Я почти уверен, что это как-то связано со средой развертывания, а не с моими изменениями. Причина, по которой я говорю это, заключается в том, что сегодня утром я обновил версию backpack/crud, и приложение успешно запустилось после развертывания.

Итак, просто для проверки я развернул снова без каких-либо изменений, было загружено ноль файлов, и я столкнулся с той же проблемой!

Было бы здорово, если бы кто-нибудь подскажет, что я могу попробовать.

2020/07/09 23:42:46 [error] 20#20: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught ReflectionException: Class hash does not exist in /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php:805
Stack trace:
#0 /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php(805): ReflectionClass->__construct('hash')
#1 /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php(687): Illuminate\Container\Container->build('hash')
#2 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(796): Illuminate\Container\Container->resolve('hash', Array, true)
#3 /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php(633): Illuminate\Foundation\Application->resolve('hash', Array)
#4 /srv/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(781): Illuminate\Container\Container->make('hash', Array)
#5 /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php(1280): Illuminate\Foundation\Application->make('hash')
#6 /srv/vendor/laravel/framework/src/Illuminate/Auth/CreatesUserPro...PHP message: PHP Fatal error:  Uncaught ReflectionException: Class hash does not exist in /srv/vendor/laravel/framework/src/Illuminate/Container/Container.php:805

Мой composer. json -

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.2.5",
        "backpack/crud": "4.1.*",
        "backpack/permissionmanager": "^6.0",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^1.0",
        "guzzlehttp/guzzle": "^6.3",
        "intervention/image": "^2.5",
        "laravel/framework": "^7.0",
        "laravel/tinker": "^2.0",
        "superbalist/laravel-google-cloud-storage": "^2.2"
    },
    "require-dev": {
        "backpack/generators": "^3.1",
        "facade/ignition": "^2.0",
        "fzaninotto/faker": "^1.9.1",
        "laracasts/generators": "^1.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^4.1",
        "phpunit/phpunit": "^8.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-install-cmd": [
            "composer clearcache",
            "chmod -R 755 bootstrap\/cache",
            "php artisan cache:clear",
            "php artisan config:clear"
        ]
    }
}

1 Ответ

0 голосов
/ 10 июля 2020

Довольно часто сталкиваюсь с подобной проблемой. Хотя это не совсем то же самое, но может быть достаточно похоже, чтобы решить эту проблему за вас. Для меня это обычно проблема с кешем при сборке.

Если это происходит после обновления composer, и вы забыли сделать --no-dev, а затем удалить данные при следующем обновлении, эта ошибка может возникнуть.

Чтобы исправить:

Либо проблема без разработки, либо, возможно, общая проблема с кешем сборки, вручную go в папку bootstrap / cache и удалите файлы, особенно файл пакетов. Или, если вы установили среду как DEV и на самом деле не загружали пакеты dev, go назад и composer update (без no-dev)

В качестве альтернативы, если вы все еще застряли, вы можете попробовать обновить composer без скриптов, а затем установить. В моем случае, когда-то он все еще пытался загрузить отладочную панель.

...