Saya ingin menaik taraf projek Laravel 9 saya yang sedia ada kepada versi 10. Matlamatnya ialah bukan sahaja fail vendor boleh dikemas kini melalui Komposer. Selain itu, saya mahu perubahan dalam kod projek saya ditunjukkan di luar folder vendor.
Saya menaik taraf projek saya mengikut panduan naik taraf daripada dokumentasi Laravel.
Ini ialah fail yang diubah.
Contohnya app/Console/Kernel.php
saya hendaklah ditukar kepada
<?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'); } }
kepada
<?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'); } }
Mengemas kini fail "sampel" sedemikian secara automatik mungkin tidak dapat dilakukan sama sekali secara automatik, kerana pengguna boleh mengeditnya dalam projek mereka, itulah sebabnya mereka tidak berada dalam vendor.
Pilihan terbaik untuk mengemas kini sintaks berkaitan PHP (seperti petunjuk jenis yang dinyatakan) mungkin akan menjadi seperti PHP-CS-Fixer dengan peraturan yang sesuai, tetapi contoh fungsi anda tidak boleh menggunakannya kerana ini memerlukan definisi lama untuk lulus PHPDoc jenis pulangan.
Jika anda mengubah suai fail ini, anda boleh menyalin perubahan secara manual daripada repositori Laravel dan menyesuaikannya dengan kod anda.
Perubahan pada rangka kerja aplikasi baharu Laravel boleh dilihat di Github melalui alat perbandingannya: https://github.com/laravel/laravel/compare/9.x...10.x
(Anda boleh melakukan ini secara tempatan menggunakan klien GUI Git atau baris arahan Git , juga.)
Perubahan ini boleh ditukar kepada
.patch
fail yang kemudiannya boleh anda gunakan pada aplikasi anda. Github sekali lagi menyediakan cara yang agak mudah untuk melakukan ini; https://github.com/laravel/laravel/compare/9.x...10.x.patch.Selepas anda menyimpan fail .patch secara setempat, anda boleh menggunakan
git apply <path-to-patch-file>
untuk menerapkannya pada repositori anda. Dalam kebanyakan kes ini harus berfungsi dengan sempurna.Untuk menjadi jelas, ini bukan pengganti untuk mengikuti https://laravel.com/docs/10.x/upgrade, kerana ia hanya akan membuat pelarasan yang diperlukan pada rangka kerja aplikasi lalai; cara Kemas kini kod yang anda tulis dalam Laravel.