Laravel 10 已于 2 月 14 日发布。Laravel 10 要求最低 PHP 版本为 8.1。在 Laravel 发行说明 中阅读有关该发行版的更多信息。
我们的 Basic Laravel Admin Panel 目前是 Laravel 9.x 版本,现在是时候升级到 Laravel 10 了。
Laravel 从 9.x 升级到 10.x
Laravel 升级涉及以下步骤。
更新 PHP 版本
更新 Composer 版本
更新 Composer 依赖项
更新 Composer 最低稳定性
更新 Docker Composer
所有的升级步骤都可以在 Laravel 官方文档 中找到。
更新 PHP 版本
Laravel 10 需要 PHP 8.1.0 或更高版本。如果你使用 8.1 以下的 PHP 版本。请先更新你的 PHP 版本。
现在我们将检查 Admin Panel PHP 版本。PHP 版本将会显示在 Admin Panel 或 Laravel 默认的首页。
你也可以使用以下命令在命令行中检查 PHP 版本和 Laravel 版本。
PHP 版本
./vendor/bin/sail php -v
// or
./vendor/bin/sail php --version
//If you not using sail
php -v
Laravel 版本
./vendor/bin/sail artisan -v
//or
./vendor/bin/sail artisan --version
//If you not using sail
php artisan --version
除此之外, 你还可以在 ./vendor/laravel/framework/src/Illuminate/Foundation/Application.php 文件中检查 Laravel 版本。
本文中 Laravel 管理面板使用的是 Laravel sail(Docker 开发环境)。所以我们需要更新 docker-compose.yml 文件中的 PHP。 我们将在最后更新它。
Composer 版本更新
Laravel 10 需要 Composer 2.2.0 或更高版本。 如果你使用的是较低版本,请卸载并安装新版本。
可以使用以下命令检查你的 composer 版本
composer -v
composer -vvv about
如果你使用的是 sail,试试下面这种方式
./vendor/bin/sail composer -v
./vendor/bin/sail composer -vvv about
现在已经是 2.2.0 以上的 composer 版本。
更新 Composer 依赖项
对于 Laravel 10,我们需要在应用程序的 composer.json
文件中更新以下依赖项
laravel/framework
to^10.0
spatie/laravel-ignition
to^2.0
php
to^8.1
管理面板更新了以下依赖项
diff --git a/composer.json b/composer.json
index 381f15d..b0be0bc 100644
--- a/composer.json
+++ b/composer.json
@@ -5,12 +5,12 @@
"keywords": ["framework", "laravel", "boilerplate", "admin panel"],
"license": "MIT",
"require": {
- "php": "^8.0.2",
+ "php": "^8.1",
"balajidharma/laravel-admin-core": "^1.0",
"guzzlehttp/guzzle": "^7.2",
- "laravel/framework": "^9.19",
- "laravel/sanctum": "^2.14.1",
- "laravel/tinker": "^2.7",
+ "laravel/framework": "^10.0",
+ "laravel/sanctum": "^3.2",
+ "laravel/tinker": "^2.8",
"spatie/laravel-permission": "^5.5"
},
"require-dev": {
@@ -19,11 +19,11 @@
"laravel/breeze": "^1.7",
"laravel/dusk": "^7.1",
"laravel/pint": "^1.0",
- "laravel/sail": "^1.0.1",
+ "laravel/sail": "^1.18",
"mockery/mockery": "^1.4.4",
- "nunomaduro/collision": "^6.1",
- "phpunit/phpunit": "^9.5.10",
- "spatie/laravel-ignition": "^1.0"
+ "nunomaduro/collision": "^7.0",
+ "phpunit/phpunit": "^10.0",
+ "spatie/laravel-ignition": "^2.0"
},
"autoload": {
"psr-4": {
修改 composer Minimum Stability
还有一个 composer 文件的更改。minimum-stability
选项需要被修改为 stable
"minimum-stability": "stable",
在修改完后运行 composer update
./vendor/bin/sail composer update
现在打开应用程序主页。
如果你需要更新的欢迎页面,请复制 raw.githubusercontent.com/laravel/... 并更新 resources/views/welcome.blade.php
文件
更新 Docker Composer
我们将使用 Laravel 上的最新更改更新 docker-compose.yml 文件。
最新的 Laravel sail 使用的是 PHP 8.2 版本。以下是最终版本的 docker-compose.yml 文件。
# For more information: https://learnku.com/docs/laravel/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.2
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.2/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
- '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
- meilisearch
- mailpit
- selenium
mysql:
image: 'mysql/mysql-server:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 1
volumes:
- 'sail-mysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-p${DB_PASSWORD}'
retries: 3
timeout: 5s
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- 'sail-redis:/data'
networks:
- sail
healthcheck:
test:
- CMD
- redis-cli
- ping
retries: 3
timeout: 5s
meilisearch:
image: 'getmeili/meilisearch:latest'
ports:
- '${FORWARD_MEILISEARCH_PORT:-7700}:7700'
volumes:
- 'sail-meilisearch:/meili_data'
networks:
- sail
healthcheck:
test:
- CMD
- wget
- '--no-verbose'
- '--spider'
- 'http://localhost:7700/health'
retries: 3
timeout: 5s
mailpit:
image: 'axllent/mailpit:latest'
ports:
- '${FORWARD_MAILPIT_PORT:-1025}:1025'
- '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
networks:
- sail
selenium:
image: 'selenium/standalone-chrome'
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
- '/dev/shm:/dev/shm'
networks:
- sail
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mysql:mysql
ports:
- 8080:80
environment:
MYSQL_USERNAME: "${DB_USERNAME}"
MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
PMA_HOST: mysql
networks:
- sail
networks:
sail:
driver: bridge
volumes:
sail-mysql:
driver: local
sail-redis:
driver: local
sail-meilisearch:
driver: local
我们已成功将管理面板升级到 Laravel 10.x
Laravel 管理面板在 github.com/balajidharma/basic-lara.... 安装并分享你的反馈。