📜  laravel 7 升级 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:11.890000             🧑  作者: Mango

Laravel 7 升级 - Shell/Bash

如果你正在使用Laravel 6.x版本,你可能已经注意到了Laravel 7版本的发布。Laravel 7版本带来了一些令人兴奋的新功能和改进,但是你需要进行一些升级才能使用这些新功能。

这个指南将向你展示如何升级Laravel 6.x到Laravel 7版本。

第一步:备份你的应用程序

在执行升级之前,首先要备份你的应用程序。这是非常重要的,因为如果升级出现了问题,你可以恢复到备份的应用程序版本。

$ cp -r /path/to/laravel/app /path/to/laravel/app-backup
第二步:更新composer.json文件

在当前的应用程序目录下,打开 composer.json 文件并进行如下更新:

{
    "require": {
        "php": "^7.2.5",
        "laravel/framework": "^7.0"
    },
    
    // ...
}

你还需要从你的应用程序根目录中删除 composer.lock 文件:

$ rm composer.lock
第三步:运行composer update

运行以下命令来更新应用:

$ composer update

此命令将升级所有laravel组件并将应用程序更新到Laravel 7版本。

第四步:删除Illuminate\Foundation\Application FQCN

找到应用程序代码中所有出现 Illuminate\Foundation\Application 的FQCN(Fully Qualified Class Name),并将其替换为 Illuminate\Contracts\Foundation\Application

可以使用以下命令在整个项目中进行全局查找和替换:

$ grep -rl "Illuminate\Foundation\Application" | xargs sed -i 's/Illuminate\\Foundation\\Application/Illuminate\\Contracts\\Foundation\\Application/g'
第五步:添加route-view Blade指令

将以下指令添加到 app/Providers/AppServiceProvider.php 文件中的 boot 方法中:

public function boot()
{
    // ...
    Blade::directive('route', function ($url) {
        return "<?php echo route({$url}); ?>";
    });
}

此指令将允许你在Blade模板中使用 @route('route.name') 来输出路由的URL。

第六步:添加Nova服务提供程序

如果你使用Laravel Nova,则可以将以下服务提供程序添加到配置文件中(config/app.php):

'providers' => [
    // ...
    Laravel\Nova\NovaCoreServiceProvider::class,
],
结论

这些步骤将会为你的Laravel应用程序升级到Laravel 7版本。

升级后,你应该可以使用新的Laravel 7功能以及改进的性能和安全性。

如果你遇到问题,你可以恢复到之前备份的应用程序版本,并尝试根据文档进行更详细的升级。