Вызов неопределенного метода App \ Console \ Kernel :: load () - Laravel 5.4 - PullRequest
0 голосов
/ 14 ноября 2018

Я понизил свое приложение с 5.5 to 5.4, и я получаю эту ошибку при запуске php artisan serve

Вызов неопределенного метода App \ Console \ Kernel :: load () - Laravel 5.4

Глядя на другие решения, я запускаю composer dump-autoload, чтобы решить эту проблему, но проблема сохраняется. Та же ошибка. Я действительно не знаю, вызвано ли это моими пакетами в файле composer.json, размещенном ниже

Что я мог сделать, чтобы решить это сейчас?

Заранее спасибо

Composer.Json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "barryvdh/laravel-dompdf": "0.8.*",
        "fideloper/proxy": "~4.0",
        "guzzle/guzzle": "~3.0",
        "laravel/framework": "5.4.*",
        "laravel/passport": "^3.0",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "~5.0",
        "maatwebsite/excel": " ~2.1.0",
        "pda/pheanstalk": "~2.0",
        "picqer/php-barcode-generator": "^0.2.0",
        "spatie/laravel-permission": "^2.12",
        "yajra/laravel-datatables-oracle": "~8.0"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "nunomaduro/collision": "~1.1",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "~1.0",
        "phpunit/phpunit": "~7.0",
        "symfony/thanks": "^1.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories",
            "app/commands",
            "app/models",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Проблема в том, что вы не гарантировали, что обновили свой код для совместимости с Laravel 5.4.

В шаблоне Kernel.php, который поставляется с Laravel 5.5+, есть строка

$this->load(__DIR__.'/Commands');

Эта команда была добавлена ​​в 5.5 для автоматического определения любых команд в каталоге app / Console / Commands.

Чтобы этот код работал в 5.4, вам нужно удалить эту строку и зарегистрироватьвсе ваши команды вручную в массиве protected $commands = [ ] в одном файле.

Исходный код для load находится в https://github.com/laravel/framework/blob/5.5/src/Illuminate/Foundation/Console/Kernel.php#L196, если вы хотите попытаться адаптировать его и поместить в свой собственныйKernel.php

0 голосов
/ 12 февраля 2019

Перейдите в your_project / app / Console / Kernel.php и удалите строку

$ this-> load ( DIR . '/ Commands');

в командах () функция

0 голосов
/ 14 ноября 2018

Удалить папку поставщика и файл composer.lock после запуска composer install команда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...