web-dev-qa-db-ja.com

Laravel 5.12.0から5.2.0へのアップグレードエラー

composer updateコマンドでエラーを取得します。

enter image description here

私のcomposer.jsonファイルは:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "illuminate/html": "^5.0",
        "barryvdh/laravel-debugbar": "~2.0",
        "spatie/laravel-paginateroute": "^2.0",
        "darkaonline/l5-swagger": "~2.0",
        "yajra/laravel-datatables-Oracle": "~5.0",
        "phpoffice/phpexcel": "^1.8"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1",
        "symfony/dom-crawler": "~3.0",
        "symfony/css-selector": "~3.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "files": ["app/Helpers/helpers.php"],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}
14
Kiren Siva

この古いパッケージを削除する必要があります(コアから削除され、サポートされなくなりました):

"illuminate/html": "^5.0",

削除するときは、そのサービスプロバイダー/エイリアスも削除する必要があります。だから、あなたがconfig/app.php、プロバイダーとエイリアスのセクションが表示されます。まだ行っていない場合は、これらのコード行を削除してください。

'Illuminate\Html\HtmlServiceProvider'

'Form'=> 'Illuminate\Html\FormFacade', 
'HTML'=> 'Illuminate\Html\HtmlFacade',

代わりに、Laravel集合パッケージをインストールする必要があります。それをインストールするには、illuminate/htmlこのパッケージ:

"laravelcollective/html": "5.2.*"

次に、config/app.phpファイル、これをプロバイダー配列に追加します。

Collective\Html\HtmlServiceProvider::class

そしてこれをあなたのエイリアス配列に:

'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,

ドキュメントはここにあります: https://laravelcollective.com/docs/5.2/html

39
Thomas Kim

Link1Link2 に記載されている手順で解決しました

アップグレード後、Link2に記載されているすべてのDeprecationsが現在のアプリで修正されていることを確認してください。私にとっては、Illuminate\Contracts\Routing\Middlewareをすべてのミドルウェアから削除する必要がありました。

また、"yajra/laravel-datatables-Oracle": "~6.1.1",のような特定のパッケージの最新バージョンをインストールする必要がありました

3
Kiren Siva

これ見て
https://laracasts.com/discuss/channels/laravel/call-to-undefined-method-illuminatefoundationapplicationbindshared

「bindSharedの名前は$ app-> singleton()に変更されました」

[編集]変更する必要があるものは、独自のカスタムコードであると思います:$ this-> app-> bindShared()から: $ this-> app-> singleton()。

3
Mainpixel.io