PHP, ölümcül hataları yakalamak ve kurtarmak için geleneksel araçlar sağlamaz. Bunun nedeni, ölümcül bir hatadan sonra işlemenin genellikle kurtarılmaması gerektiğidir. Bir çıktı arabelleği ile eşleşen dize (orijinal yazı tarafından PHP.net'te açıklanan teknikte önerildiği gibi) kesinlikle tavsiye edilmez. Güvenilmez.
Mail () işlevini bir hata işleyici yönteminden çağırmak da sorunludur. Çok fazla hatayla karşılaşırsanız, posta sunucunuz işe yüklenir ve kendinizi korkunç bir gelen kutusuyla bulabilirsiniz. Bunu önlemek için, hata günlüklerini düzenli olarak taramak ve buna göre bildirim göndermek için bir cron çalıştırmayı düşünebilirsiniz. Nagios gibi sistem izleme yazılımlarına da bakmak isteyebilirsiniz .
Bir kapatma işlevinin kaydedilmesi hakkında biraz konuşmak için:
Bir kapatma işlevi kaydedebileceğiniz doğrudur ve bu iyi bir yanıttır.
Buradaki nokta, özellikle çıktı tamponunuza karşı düzenli bir ifade kullanarak değil, ölümcül hatalardan kurtulmaya çalışmamamız gerektiğidir. Php.net üzerinde değiştirilmiş veya kaldırılmış bir öneriyle bağlantılı olarak kabul edilen cevaba yanıt veriyordum.
Bu öneri, özel durum işleme sırasında çıktı arabelleğine bir normal ifade kullanmaktı ve önemli bir hata olması durumunda (beklediğiniz yapılandırılmış hata metniyle eşleştirme tarafından algılanıyorsa), bir tür kurtarma veya devam eden işlem yapmaya çalışın. Bu önerilen bir uygulama olmaz (Ben de bu yüzden orijinal öneri bulamıyorum inanıyorum. Ya ben ya gözden, ya da php topluluk vuruldu).
PHP'nin daha yeni sürümlerinin (yaklaşık 5.1), çıktı arabelleğe alma geri çağrılmasını sağlamadan önce kapatma işlevini daha önce çağırdığını belirtmek gerekir. Sürüm 5 ve önceki sürümlerde, bu sıra tersidir (çıktı arabelleğe alma geri aramasını ardından kapatma işlevi). Ayrıca, yaklaşık 5.0.5 (sorucının 5.2.3 sürümünden çok daha erken) olduğundan, kayıtlı bir kapatma işlevi çağrılmadan önce nesneler çok iyi kaldırılır, bu nedenle yapmak için bellek içi nesnelerinize güvenemezsiniz. çok şey var.
Bu nedenle, bir kapatma işlevinin kaydedilmesi iyidir, ancak bir kapatma işlevi tarafından gerçekleştirilmesi gereken görevler muhtemelen bir avuç nazik kapatma prosedürüyle sınırlıdır.
Buradaki anahtar teslim, bu soruya tökezleyen ve ilk kabul edilen cevapta tavsiyeyi gören herkes için sadece bazı bilgelik sözleridir. Çıktı tamponunuzu düzenli olarak düzenlemeyin.