首页  >  问答  >  正文

升级Laravel 9到10:更新vendor文件夹之外的文件

我想将现有的 Laravel 9 项目升级到版本 10。目标是,不仅供应商文件可以通过 Composer 更新。此外,我还想在供应商文件夹之外反映我的项目代码中的更改。

我按照 Laravel 文档的升级指南升级了我的项目。

这是已更改的文件。

例如我的 app/Console/Kernel.php 应该更改为

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')->hourly();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
        // $schedule->command('inspire')->hourly();
    }

    /**
     * Register the commands for the application.
     */
    protected function commands(): void
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}

P粉546138344P粉546138344229 天前380

全部回复(2)我来回复

  • P粉792026467

    P粉7920264672024-03-28 09:09:17

    自动更新此类“示例”文件可能根本不可能自动进行,因为用户可以在其项目中编辑它们,这就是它们不在供应商中的原因。

    更新 PHP 相关语法(例如提到的类型提示)的最佳选择可能是具有适当规则的 PHP-CS-Fixer 之类的东西,但您的函数示例无法使用它,因为这需要旧的定义方式通过 PHPDoc 返回类型。

    如果您修改了这些文件,则可以从 Laravel 存储库手动复制这些更改并将其调整为您的代码。

    回复
    0
  • P粉002546490

    P粉0025464902024-03-28 00:41:58

    Laravel 新应用程序框架的更改可以通过其比较工具在 Github 上查看:https://github.com/laravel/laravel/compare/9.x...10.x

    (您可以使用 GUI Git 客户端或 Git 在本地执行此操作命令行,以及。)

    这些更改可以转换为 .patch 文件,然后您可以将其应用于您的应用程序。 Github 再次提供了一个相当简单的方法来做到这一点; https://github.com/laravel/laravel/比较/9.x...10.x.补丁

    将 .patch 文件保存在本地后,您可以使用 git apply <path-to-patch-file> 将其应用到您的存储库中。在大多数情况下,这应该完全适用。

    需要明确的是,这并不能替代遵循 https://laravel.com/docs/10.x/upgrade,因为它只会对默认应用程序框架进行必要的调整;它不会以任何方式更新您在 Laravel 中编写的代码。

    回复
    0
  • 取消回复