Untuk menukar daripada PHP 8.0 kepada 8.1, saya menemui banyak paparan PHP Amaran Dihentikan Saya hanya boleh mematikannya, tetapi lebih baik untuk membetulkannya untuk PHP 8.2, jadi saya cuba mendapatkan pencatat senyap amaran ini apabila aplikasi saya berjalan dalam PHP 8.1. Apakah tetapan yang perlu saya buat dalam Yii 2 dan PHP? Adakah ini mungkin?
Apabila saya menetapkan PHP kepada error_reporting( E_ALL );
, aplikasi Yii 2 memaparkan ralat. Ini bukan cara "senyap".
Konfigurasi Yii2: Failmain.php
'targets' => [ 'class' => 'yiilogFileTarget', 'levels' => ['ralat', 'amaran'], ],
Bagaimanakah saya hanya log amaran PHP ini tanpa menghentikan kod daripada berjalan?
Cuba ini:
Kini, amaran PHP akan dilog tanpa menghentikan pelaksanaan kod. Walau bagaimanapun, untuk mencapai cara "senyap" log masuk amaran PHP sepenuhnya, anda perlu melaraskan tetapan untuk pelaporan ralat PHP.
Buka fail konfigurasi PHP anda (php.ini).
Cari arahan error_reporting dan ubah suai untuk memasukkan E_WARNING. Contohnya:
Dengan memasukkan E_WARNING anda memastikan amaran PHP dilog, tetapi jenis ralat lain tidak.
Simpan fail konfigurasi PHP dan mulakan semula pelayan web anda untuk perubahan berkuat kuasa. Dengan perubahan ini, Yii2 akan log amaran PHP ke fail log yang ditentukan sambil membenarkan pelaksanaan kod diteruskan. Anda boleh melihat fail log (php_warnings.log) untuk mengumpul dan mengendalikan amaran PHP.