Masalah:
Mengikuti kemas kini PHP 8 pada macOS mesin, aplikasi Laravel menjadi tidak berfungsi, menyebabkan mesej ralat berikut:
Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 871 Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 945 Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 871 Deprecated: Method ReflectionParameter::getClass() is deprecated in /Users/.../Sites/.../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 945
Penyelesaian:
Isu ini timbul akibat perubahan yang dilaksanakan dalam Laravel 6, 7, dan 8 yang menampung sistem jenis disemak PHP 8. Untuk menyelesaikan masalah, langkah berikut perlu diambil:
Tambahkan keserasian PHP 8 pada "php" kemasukan dalam composer.json, memastikan sokongan untuk PHP 7.4 dan 8.0:
"php": "^7.4|^8.0",
Kemas kini Laravel kepada versi terkini:
composer update
Aplikasi Laravel biasanya menggunakan perpustakaan berikut:
Semak pustaka lain yang dipasang untuk mendapatkan kemas kini yang diperlukan yang membolehkan sokongan PHP 8.
Penjelasan:
PHP 8 memperkenalkan perubahan pada sistem jenisnya, termasuk jenis kesatuan, jenis campuran dan kaedah yang tidak digunakan dalam kelas ReflectionParameter API Reflection:
ReflectionParameter::getClass() ReflectionParameter::isArray() ReflectionParameter::isCallable()
Sebagai pengganti, ReflectionParameter::getType () harus digunakan, yang telah diperkenalkan dalam PHP 7.0 dan menyediakan maklumat jenis yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Disfungsi Aplikasi Laravel Selepas Peningkatan PHP 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!