我想将Laravel更新到最新版本5.4 但是laravel migration guide没有给出直接迁移,所以首先我要尝试将其迁移到laravel 5.3 我的项目正在开发5.2 laravel版本并尝试升级它。
我已按照laravel迁移指南的文档进行了更新composer.json
并在命令行上运行命令composer update
。
我收到了以下错误。
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Loading composer repositories with package information
更新依赖项(包括require-dev) 您的要求无法解析为可安装的软件包。
Problem 1
- Conclusion: don't install laravel/framework v5.3.31
- Conclusion: don't install laravel/framework v5.3.30
- Conclusion: don't install laravel/framework v5.3.29
- Conclusion: don't install laravel/framework v5.3.28
- Conclusion: don't install laravel/framework v5.3.27
- Conclusion: don't install laravel/framework v5.3.26
- Conclusion: don't install laravel/framework v5.3.25
- Conclusion: don't install laravel/framework v5.3.24
- Conclusion: don't install laravel/framework v5.3.23
- Conclusion: don't install laravel/framework v5.3.22
- Conclusion: don't install laravel/framework v5.3.21
- Conclusion: don't install laravel/framework v5.3.20
- Conclusion: don't install laravel/framework v5.3.19
- Conclusion: don't install laravel/framework v5.3.18
- Conclusion: don't install laravel/framework v5.3.17
- Conclusion: don't install laravel/framework v5.3.16
- Conclusion: don't install laravel/framework v5.3.15
- Conclusion: don't install laravel/framework v5.3.14
- Conclusion: don't install laravel/framework v5.3.13
- Conclusion: don't install laravel/framework v5.3.12
- Conclusion: don't install laravel/framework v5.3.11
- Conclusion: don't install laravel/framework v5.3.10
- Conclusion: don't install laravel/framework v5.3.9
- Conclusion: don't install laravel/framework v5.3.8
- Conclusion: don't install laravel/framework v5.3.7
- Conclusion: don't install laravel/framework v5.3.6
- Conclusion: don't install laravel/framework v5.3.5
- Conclusion: don't install laravel/framework v5.3.4
- Conclusion: don't install laravel/framework v5.3.3
- Conclusion: don't install laravel/framework v5.3.2
- Conclusion: don't install laravel/framework v5.3.1
- laravelcollective/html v5.4 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.1 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.2 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.3 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.4 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.5 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.6 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.7 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.8 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- don't install illuminate/view v5.4.0|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.13|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.17|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.19|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.27|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.9|don't install laravel/framework v5.3.0
- Installation request for laravel/framework 5.3.* -> satisfiable by laravel/framework[v5.3.0, v5.3.1, v5.3.10, v5.3.11, v5.3.12, v5.3.13, v5.3.14, v5.3.15, v5.3.16,
v5.3.17, v5.3.18, v5.3.19, v5.3.2, v5.3.20, v5.3.21, v5.3.22, v5.3.23, v5.3.24, v5.3.25, v5.3.26, v5.3.27, v5.3.28, v5.3.29, v5.3.3, v5.3.30, v5.3.31, v5.3.4, v5.3.5, v5.
3.6, v5.3.7, v5.3.8, v5.3.9].
- Installation request for laravelcollective/html ~5.4 -> satisfiable by laravelcollective/html[v5.4, v5.4.1, v5.4.2, v5.4.3, v5.4.4, v5.4.5, v5.4.6, v5.4.7, v5.4.8].
我需要在composer.json中进行哪些额外更改才能使更新生效?
更新:
这是composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.3.*",
"twbs/bootstrap": "dev-master",
"laravelcollective/html": "~5.4",
"kepex/laravel-crud-generator": "^0.1.4",
"watson/bootstrap-form": "^1.0",
"doctrine/dbal": "^2.5",
"intervention/image": "dev-master",
"danvuquoc/laravel-kraken": "1.*",
"barryvdh/laravel-dompdf": "0.8.*",
"barryvdh/laravel-debugbar": "^2.2",
"barryvdh/laravel-snappy": "^0.3.0",
"danielboendergaard/phantom-pdf": "^1.2",
"h4cc/wkhtmltopdf-i386": "0.12.x",
"h4cc/wkhtmltoimage-i386": "0.12.x",
"h4cc/wkhtmltopdf-amd64": "0.12.x",
"knplabs/knp-snappy": "^0.4.3",
"wemersonjanuario/wkhtmltopdf-windows": "0.12.2.3",
"tymon/jwt-auth": "0.5.*",
"zizaco/entrust": "dev-laravel-5",
"eluceo/ical": "^0.11.0",
"jurosh/pdf-merge": "dev-master",
"torann/geoip": "^1.0",
"maatwebsite/excel": "~2.1.0",
"roumen/sitemap": "dev-master",
"guzzlehttp/guzzle": "^6.2",
"rackspace/php-opencloud": "dev-master",
"ellisthedev/laravel-5-robots": "~0.1.0",
"mpdf/mpdf": "^6.1",
"matthiasmullie/minify": "^1.3",
"lullabot/amp": "^1.0.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*|3.1.*",
"symfony/dom-crawler": "2.8.*|3.0.*|3.1.*"
},
"autoload": {
"classmap": ["database"],
"files": ["app/Http/helpers.php"],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": ["tests/TestCase.php"]
},
"scripts": {
"post-root-package-install": ["php -r \"copy('.env.example', '.env');\""],
"post-create-project-cmd": ["php artisan key:generate"],
"post-install-cmd": ["Illuminate\\Foundation\\ComposerScripts::postInstall", "php artisan optimize"],
"post-update-cmd": ["Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan optimize"]
},
"config": {
"preferred-install": "dist"
}
}
答案 0 :(得分:3)
我从Laravel 5.2迁移到5.6.3以下是我的步骤:
首先,您需要更新提供商 app / Providers / {EventServiceProvider,RouteServiceProvider} .php 。
他们的boot()方法不应该采用参数:
...
- public function boot(DispatcherContract $events)
+ public function boot()
{
- parent::boot($events);
+ parent::boot();
}
...
其次,更新你的composer.json。这是我的默认配置:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.1.3",
"fideloper/proxy": "~4.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "~1.0",
"laravelcollective/html": "^5.5.0"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.1",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"nunomaduro/collision": "~2.0",
"phpunit/phpunit": "~7.0",
"symfony/thanks": "^1.0",
"doctrine/dbal": "^2.5"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"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
}
然后运行composer update
或php composer.phar update
从原始存储库中替换您的App / Providers / RouteServiceProvider.php。
将您的路线从app / routes / web.php移至routes / web.php (最初,您可能还想从原来的Laravel复制路线)
在文件夹app / Http / Controllers / Auth
中替换您的身份验证控制器与原始Laravel存储库注释掉旧的身份验证路由,并在web.php路由文件(more about this)中添加Auth::routes();
。
从原始存储库添加config/hashing.php
。
运行php artisan config:cache
以重置缓存。
最后,更新您的数据库结构php artisan migrate --seed
并运行应用php artisan serve
<强> Original Laravel Repository 强>
答案 1 :(得分:0)
我想你需要试试这个:
您还必须更新第一个LaravelCollective html package。
在composer.json
中,替换:
"laravelcollective/html": "5.2.*"
使用:
"laravelcollective/html": "5.4.*"
答案 2 :(得分:0)
您必须先更新barryvdh / laravel-dompdf包。
在你的composer.json中改变:
首先改变
"laravel/framework": "5.3.*"
到前一个
然后更改
这
"barryvdh/laravel-dompdf": "^0.6.1",
到
"barryvdh/laravel-dompdf": "^0.8.0",
然后点击composer update
命令
然后更改"laravel/framework": "5.3.*"
并再次点击
`composer update`
命令
答案 3 :(得分:0)
最后,我最终利用了link的优势,因为这些人整合了一切可能。从我们这边的微小变化来看,它们在升级最新版本的laravel时也会在日志中提及。它是有偿的,但一次投资可以节省时间。