Quantcast
Channel: laravel5.8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 87

laravelをバージョンアップしたらすること

$
0
0

はじめに

お久しぶりです。
今回はStripeを実装しようとしたところ、バージョンが古いからアップデートしてくれ的なエラーメッセージが出たので、
Laravel5.6から5.8にバージョンをあげたときにやったことをメモ程度に書き残します。

以下メモ

composer.jsonを修正
laravel/frameworkを5.7に修正しcompoesr updateを実行。
エラーがなかったら5.8に修正しさらにcomposer updateを実行。

5.8にかえた段階でなんかエラーがたくさん発生

#0 プロジェクト名/laravel/framework/src/Illuminate/Container/Container.php(785): NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider->NunoMaduro\Collision\Adapters\Laravel\{closure}(Object(Illuminate\Foundation\Application), Array)
#1 プロジェクト名/vendor/laravel/framework/src/Illuminate/Container/Container.php(667): Illuminate\Container\Container->build(Object(Closure))
#2 プロジェクト名/vendor/laravel/framework/src/Illuminate/Container/Container.php(615): Illuminate\Container\Container->resolve('Illuminate\\Cont...', Array)
#3 プロジェクト名/vendor/nunomaduro/collision/src/Adapters/Laravel/CollisionServiceProvider.php on line 44

とりあえずなんのことだか、さっぱりでしたが#3にヒントっぽいのがありましたので、そこのディレクトリまで移動して中身を確認。
多分ここでエラーが起きてます。。。
エラーの原因はわかったけど、修正の仕方がわからないので、適当にlaravel5.8のプロジェクトを作成しました。

CollisionServiceProvider.phpを修正しました。

CollisionServiceProvider--laravel5.6.php
<?php/**
 * This file is part of Collision.
 *
 * (c) Nuno Maduro <enunomaduro@gmail.com>
 *
 *  For the full copyright and license information, please view the LICENSE
 *  file that was distributed with this source code.
 */namespaceNunoMaduro\Collision\Adapters\Laravel;useNunoMaduro\Collision\Provider;useIlluminate\Support\ServiceProvider;useNunoMaduro\Collision\Adapters\Phpunit\Listener;useNunoMaduro\Collision\Contracts\ProviderasProviderContract;useIlluminate\Contracts\Debug\ExceptionHandlerasExceptionHandlerContract;useNunoMaduro\Collision\Contracts\Adapters\Phpunit\ListenerasListenerContract;/**
 * This is an Collision Laravel Adapter Service Provider implementation.
 *
 * Registers the Error Handler on Laravel.
 *
 * @author Nuno Maduro <enunomaduro@gmail.com>
 */classCollisionServiceProviderextendsServiceProvider{/**
     * {@inheritdoc}
     */publicfunctionregister(){if($this->app->runningInConsole()&&!$this->app->runningUnitTests()){$this->app->singleton(ListenerContract::class,Listener::class);$this->app->bind(ProviderContract::class,Provider::class);$appExceptionHandler=$this->app->make(ExceptionHandlerContract::class);$this->app->singleton(ExceptionHandlerContract::class,function($app)use($appExceptionHandler){returnnewExceptionHandler($app,$appExceptionHandler);});}}}?>
ExceptionHandler--laravel5.6.php
<?php/**
 * This file is part of Collision.
 *
 * (c) Nuno Maduro <enunomaduro@gmail.com>
 *
 *  For the full copyright and license information, please view the LICENSE
 *  file that was distributed with this source code.
 */namespaceNunoMaduro\Collision\Adapters\Laravel;useException;useIlluminate\Contracts\Foundation\Application;useNunoMaduro\Collision\Contracts\ProviderasProviderContract;useIlluminate\Contracts\Debug\ExceptionHandlerasExceptionHandlerContract;useSymfony\Component\Console\Exception\ExceptionInterfaceasSymfonyConsoleExceptionInterface;/**
 * This is an Collision Laravel Adapter ExceptionHandler implementation.
 *
 * Registers the Error Handler on Laravel.
 *
 * @author Nuno Maduro <enunomaduro@gmail.com>
 */classExceptionHandlerimplementsExceptionHandlerContract{/**
     * Holds an instance of the application exception handler.
     *
     * @var \Illuminate\Contracts\Debug\ExceptionHandler
     */protected$appExceptionHandler;/**
     * Holds an instance of the application.
     *
     * @var \Illuminate\Contracts\Foundation\Application
     */protected$app;/**
     * Creates a new instance of the ExceptionHandler.
     *
     * @param \Illuminate\Contracts\Foundation\Application $app
     * @param \Illuminate\Contracts\Debug\ExceptionHandler $appExceptionHandler
     */publicfunction__construct(Application$app,ExceptionHandlerContract$appExceptionHandler){$this->app=$app;$this->appExceptionHandler=$appExceptionHandler;}/**
     * {@inheritdoc}
     */publicfunctionreport(Exception$e){$this->appExceptionHandler->report($e);}/**
     * {@inheritdoc}
     */publicfunctionrender($request,Exception$e){return$this->appExceptionHandler->render($request,$e);}/**
     * {@inheritdoc}
     */publicfunctionrenderForConsole($output,Exception$e){if($einstanceofSymfonyConsoleExceptionInterface){$this->appExceptionHandler->renderForConsole($output,$e);}else{$handler=$this->app->make(ProviderContract::class)->register()->getHandler()->setOutput($output);$handler->setInspector((newInspector($e)));$handler->handle();}}}
CollisionServiceProvider--laravel5.6.php
<?php/**
 * This file is part of Collision.
 *
 * (c) Nuno Maduro <enunomaduro@gmail.com>
 *
 *  For the full copyright and license information, please view the LICENSE
 *  file that was distributed with this source code.
 */namespaceNunoMaduro\Collision\Adapters\Laravel;useNunoMaduro\Collision\Provider;useIlluminate\Support\ServiceProvider;useNunoMaduro\Collision\Adapters\Phpunit\Listener;useNunoMaduro\Collision\Contracts\ProviderasProviderContract;useIlluminate\Contracts\Debug\ExceptionHandlerasExceptionHandlerContract;useNunoMaduro\Collision\Contracts\Adapters\Phpunit\ListenerasListenerContract;/**
 * This is an Collision Laravel Adapter Service Provider implementation.
 *
 * Registers the Error Handler on Laravel.
 *
 * @author Nuno Maduro <enunomaduro@gmail.com>
 */classCollisionServiceProviderextendsServiceProvider{/**
     *
     * {@inheritdoc}
     */protected$defer=true;/**
     *
     * {@inheritdoc}
     */publicfunctionregister(){if($this->app->runningInConsole()&&!$this->app->runningUnitTests()){$this->app->singleton(ListenerContract::class,Listener::class);$this->app->bind(ProviderContract::class,Provider::class);$appExceptionHandler=$this->app->make(ExceptionHandlerContract::class);$this->app->singleton(ExceptionHandlerContract::class,function($app)use($appExceptionHandler){returnnewExceptionHandler($app,$appExceptionHandler);});}}/**
     *
     * {@inheritdoc}
     */publicfunctionprovides(){return[ProviderContract::class];}}
ExceptionHandler--laravel5.8.php
<?php/**
 * This file is part of Collision.
 *
 * (c) Nuno Maduro <enunomaduro@gmail.com>
 *
 *  For the full copyright and license information, please view the LICENSE
 *  file that was distributed with this source code.
 */namespaceNunoMaduro\Collision\Adapters\Laravel;useException;useIlluminate\Contracts\Foundation\Application;useNunoMaduro\Collision\Contracts\ProviderasProviderContract;useIlluminate\Contracts\Debug\ExceptionHandlerasExceptionHandlerContract;useSymfony\Component\Console\Exception\ExceptionInterfaceasSymfonyConsoleExceptionInterface;/**
 * This is an Collision Laravel Adapter ExceptionHandler implementation.
 *
 * Registers the Error Handler on Laravel.
 *
 * @author Nuno Maduro <enunomaduro@gmail.com>
 */classExceptionHandlerimplementsExceptionHandlerContract{/**
     * Holds an instance of the application exception handler.
     *
     * @var \Illuminate\Contracts\Debug\ExceptionHandler
     */protected$appExceptionHandler;/**
     * Holds an instance of the application.
     *
     * @var \Illuminate\Contracts\Foundation\Application
     */protected$app;/**
     * Creates a new instance of the ExceptionHandler.
     *
     * @param \Illuminate\Contracts\Foundation\Application $app
     * @param \Illuminate\Contracts\Debug\ExceptionHandler $appExceptionHandler
     */publicfunction__construct(Application$app,ExceptionHandlerContract$appExceptionHandler){$this->app=$app;$this->appExceptionHandler=$appExceptionHandler;}/**
     *
     * {@inheritdoc}
     */publicfunctionreport(Exception$e){$this->appExceptionHandler->report($e);}/**
     *
     * {@inheritdoc}
     */publicfunctionrender($request,Exception$e){return$this->appExceptionHandler->render($request,$e);}/**
     *
     * {@inheritdoc}
     */publicfunctionrenderForConsole($output,Exception$e){if($einstanceofSymfonyConsoleExceptionInterface){$this->appExceptionHandler->renderForConsole($output,$e);}else{$handler=$this->app->make(ProviderContract::class)->register()->getHandler()->setOutput($output);$handler->setInspector((newInspector($e)));$handler->handle();}}/**
     * Determine if the exception should be reported.
     *
     * @param \Exception $e
     * @return bool
     */publicfunctionshouldReport(Exception$e){return$this->appExceptionHandler->shouldReport($e);}}

とりあえずこの二つのファイルを修正しました。
php artisan を実行してみましょう。
動くはずです。

ざっと書きましたが上記の流れで自分はartisanが実行できるようになりました!
記事が少なくて大変でした。。。


Viewing all articles
Browse latest Browse all 87

Trending Articles