#laravel #composer-php
#laravel #composer-php
Вопрос:
Я пытаюсь обновить свою версию Laravel с 6 -> 8, следуя этому руководству https://laravel.com/docs/8.x/upgrade
Я не уверен, должен ли я сначала обновиться до Laravel 7, а затем до 8, тем не менее, я сталкиваюсь с той же проблемой composer при попытке обновления до 7.
вывод обновления composer:
Problem 1
- illuminate/database 5.7.17 requires illuminate/support 5.7.* -> satisfiable by laravel/framework[5.7.x-dev], illuminate/support[5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9].
- illuminate/database v5.4.9 requires nesbot/carbon ~1.20 -> satisfiable by nesbot/carbon[1.20.0, 1.21.0, 1.22.0, 1.22.1, 1.23.0, 1.24.0, 1.24.1, 1.24.2, 1.25.0, 1.25.1, 1.25.3, 1.26.0,
1.26.1, 1.26.2, 1.26.3, 1.26.4, 1.26.5, 1.26.6, 1.27.0, 1.28.0, 1.29.0, 1.29.1, 1.29.2, 1.30.0, 1.31.0, 1.31.1, 1.32.0, 1.33.0, 1.34.0, 1.34.1, 1.34.2, 1.34.3, 1.34.4, 1.35.0, 1.35.1, 1.36.0, 1.36.1, 1.36.2, 1.37.0, 1.37.1, 1.38.0, 1.38.1, 1.38.2, 1.38.3, 1.38.4, 1.39.0, 1.39.1] but these conflict with your requirements or minimum-stability.
- Conclusion: don't install laravel/framework v7.28.4
- Installation request for roave/security-advisories dev-master -> satisfiable by roave/security-advisories[dev-master].
- silber/bouncer v1.0.0-rc.6 requires illuminate/database 5.1.20 - 5.8|^6.0 -> satisfiable by laravel/framework[v6.7.0, 5.1.x-dev, 5.2.x-dev, 5.3.x-dev, 5.4.x-dev, 5.5.x-dev, 5.6.x-dev,
5.7.x-dev, 5.8.x-dev, 6.x-dev], illuminate/database[5.1.x-dev, 5.2.x-dev, 5.3.x-dev, 5.4.x-dev, 5.5.x-dev, 5.6.x-dev, 5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.30, v5.1.31, v5.1.41, v5.2.0, v5.2.19, v5.2.21, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.31, v5.2.32, v5.2.37, v5.2.43, v5.2.45, v5.2.6, v5.2.7, v5.3.0, v5.3.16, v5.3.23, v5.3.4, v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.36, v5.4.9, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11,
v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.19, v6.18.2, v6.18.20, v6.18.21, v6.18.22, v6.18.23, v6.18.24, v6.18.25, v6.18.26, v6.18.27, v6.18.28, v6.18.29, v6.18.3, v6.18.30, v6.18.31, v6.18.32, v6.18.33, v6.18.34, v6.18.35, v6.18.36, v6.18.37, v6.18.38, v6.18.39, v6.18.4, v6.18.40, v6.18.41, v6.18.42, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].
- Can only install one of: laravel/framework[7.x-dev, 5.8.x-dev].
- don't install illuminate/database 5.8.x-dev|don't install laravel/framework 7.x-dev
- Installation request for laravel/framework ^7.0 -> satisfiable by laravel/framework[7.x-dev, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.19.0, v7.19.1, v7.2.0, v7.2.1, v7.2.2, v7.20.0, v7.21.0, v7.22.0, v7.22.1, v7.22.2, v7.22.3, v7.22.4, v7.23.0, v7.23.1, v7.23.2, v7.24.0, v7.25.0, v7.26.0, v7.26.1, v7.27.0, v7.28.0, v7.28.1, v7.28.2, v7.28.3, v7.28.4, v7.3.0, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2].
- Installation request for silber/bouncer v1.0.0-rc.6 -> satisfiable by silber/bouncer[v1.0.0-rc.6].
composer.json требует:
"require": {
"php": "^7.2",
"ext-curl": "*",
"ext-pdo": "*",
"bugsnag/bugsnag-laravel": "^2.17",
"doctrine/dbal": "2.9.3",
"felixkiss/uniquewith-validator": "^3.1",
"fideloper/proxy": "^4.0",
"firebase/php-jwt": "^5.2",
"lab404/laravel-impersonate": "^1.2",
"laravel/framework": "^7.0",
"laravel/helpers": "^1.1",
"laravel/passport": "^8.0.1",
"laravel/socialite": "^4.3",
"laravel/tinker": "^2.0",
"laravelcollective/html": "^6.0.3",
"league/flysystem-aws-s3-v3": "^1.0",
"league/flysystem-cached-adapter": "^1.0",
"maatwebsite/excel": "^3.1",
"moontoast/math": "^1.2",
"mpociot/laravel-apidoc-generator": "^3.10",
"mpociot/laravel-test-factory-helper": "^1.2",
"nesbot/carbon": "^2.27",
"nicolaslopezj/searchable": "^1.12",
"pdfcrowd/pdfcrowd": "^4.3",
"predis/predis": "^1.1",
"ramsey/uuid-doctrine": "^1.6",
"silber/bouncer": "v1.0.0-rc.6",
"socialiteproviders/apple": "^3.0",
"spatie/geocoder": "^3.6",
"spatie/laravel-json-api-paginate": "^1.6",
"spatie/laravel-sitemap": "^5.7",
"twilio/sdk": "^5.18",
"vimeo/vimeo-api": "^3.0",
"yajra/laravel-datatables-oracle": "^9.7"
},
"require-dev": {
"roave/security-advisories": "dev-master",
"beyondcode/laravel-dump-server": "^1.2",
"facade/ignition": "^2.0",
"ajthinking/tinx": "^2.1",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5",
"symfony/thanks": "^1.0"
},
Комментарии:
1. проверьте документ,
Upgrading To 8.0 From 7.x
вы не можете обновить с 6 до 8, вы можете что-то сломать, поэтому лучше обновить с 6 до 7 1-го, а затем с 7 до 82.и еще один, который вы используете
vimeo/laravel
, который не поддерживаетlaravel 8
github.com/vimeo/laravel/issues/793. Сообщение об ошибке ясно:
vimeo/laravel dev-master requires illuminate/support ^5.8|^6.0|^7.0
так что либо удалите этот пакет, либо дождитесьv8
поддержки.4. Я удалил vimeo / laravel сейчас, и я также обновляю до Laravel 7 вместо Laravel 8. Я обновил ответ, и composer.json требует
Ответ №1:
По крайней мере, один из используемых вами пакетов не поддерживает Laravel 7 или 8. В сообщении об ошибке composer указано, какой именно.
Согласно сообщению об ошибке, "silber/bouncer": "v1.0.0-rc.6"
поддерживается только до Laravel 6. Просмотр composer.json для этого пакета показывает, что поддержка Laravel 7 не была добавлена до v1.0.0-rc.7
, а поддержка Laravel 8 не была добавлена до v1.0.0-rc.9
.
Вам нужно будет обновить свою silber/bouncer
зависимость, а затем повторить попытку. Если вы столкнетесь с другой ошибкой, вам нужно будет просмотреть сообщение, чтобы определить, какой пакет не соответствует требованиям, а затем выяснить, к какой версии этого пакета вам нужно перейти, чтобы соответствовать требованиям.
Поскольку Laravel 8 довольно новый, вы можете столкнуться с некоторыми пакетами, которые еще не были обновлены для его поддержки (например, vimeo/laravel
). В этом случае вам нужно либо подождать, пока эти пакеты не поддержат его, либо разветвить пакет и попытаться добавить поддержку самостоятельно.
Ответ №2:
# 1 — Убедитесь, что composer.json выглядит следующим образом
"require": {
"php": "^7.2",
"fideloper/proxy": "^4.0",
"laravel/framework": "^8.0",
"laravel/passport": "^10.0",
"laravel/socialite": "^5.0",
"laravel/tinker": "^2.0",
"laravel/ui": "^3.0",
"predis/predis": "^1.1"
},
"require-dev": {
"facade/ignition": "^2.3.6",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "^9"
}
# 2 — если вы видите следующую проблему
laravel / framework заменяет illuminate / support и, следовательно, не может сосуществовать с ним.
Удалить удалить подсветку / поддержка
composer remove illuminate/support
# 3 — Методы report, render, shouldReport и renderForConsole класса App Exceptions Handler вашего приложения должны принимать экземпляры интерфейса Throwable вместо экземпляров исключений: Изменить app/Exceptions/Handler.php как следует
<?php
namespace AppExceptions;
use Throwable;
use IlluminateFoundationExceptionsHandler as ExceptionHandler;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* @param Throwable $exception
* @return void
*/
public function report(Throwable $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param IlluminateHttpRequest $request
* @param Throwable $exception
* @return IlluminateHttpResponse
*/
public function render($request, Throwable $exception)
{
return parent::render($request, $exception);
}
}