Neden PHP yüksek hata raporlama düzeyini kullanmak için değil mi?

4 Cevap php

Birisi PHP en yüksek olası hata raporlama seviyesini kullanmak gerekir neden nedenlerini vermek istiyorum?

Ways to set highest level:

PHP < 5.4:

error_reporting(E_ALL | E_STRICT);

PHP> = 5.4:

error_reporting(E_ALL);

PHP all versions (için tavsiye edilen config files):

error_reporting(2147483647);

PHP all versions (benim yapılandırma, -1 tüm hataları içeren ve hatırlaması kolay olacak)

error_reporting(-1);

My experiences:

  • Düşük raporlama seviyeleri için hiçbir neden yoktur
  • error control operator hiç kullanılmamış
  • dosya ve çizgi üzerine yazmak set_error_handler ve özel istisna sınıfı aracılığıyla istisnalar tüm hataları dönüştürmek için kullanabilirsiniz

4 Cevap

Ben şahsen hata raporlama en üst düzeyde kod tercih ve benim kod tarafından oluşturulan tüm uyarılar düzeltmek. Ancak, düşük bir düzeyde çalışmak isteyebilirsiniz nedenleri bir çift tasavvur edebilirsiniz:

  1. Sen uyarılar bir sürü yayar eski kod ile çalışıyor olabilir. Kodu doğru çalışırsa bu bir sorun değil, "gürültü" rahatsız edici olabilir ve gerçek sorunları görmesini engeller. Bu durumda, hata raporlama seviyesini düşürmek istenebilir.
  2. Bir üretim ortamında, yalnızca hataları oturum isteyebilirsiniz. Bu hata günlükleri dikkat etmeniz gereken sadece kritik konuları içeren anlamına gelir, iki faydası vardır, ve disk alanı kaydetmek (ve i / o disk azaltmak) olacaktır.

Kenara Off topic: Üretim ortamında size "display_errors = Off" olarak çalışmalı ve "error_logging = On" PHP hataları (hassas bilgileri örneğin veritabanı bağlantı özelliklerini içerebilir) görmesini engellemek ve onlar ortaya gibi hatalarının günlüğünü toplamak. Yani üretim error_reporting düzeyi ve ilgili ayarı geliştirme çalıştırmak için tercih ediyorum ne kadar farklı olabilir.

Ben iyi bir neden Jim veya değiştirilemez edemez eski kod çalışan, onun ilk nokta diyor, belki ne dışında olduğunu düşünüyorum.

Sen kesinlikle gelişimi sırasında yüksek seviyede çalıştırın ve sen büyük bir nedeniniz yoksa her uyarı ve haber temizlemek gerekir.

Eğer geliştirme sırasında bir uyarı düzeltmek için değil büyük bir nedeniniz varsa, bunu belgelemek ve günlükleri yığılan önlemek için hata contorl operatörünü kullanmanız gerekir.

Size daha iyi taşınabilirlik ve (şüpheli) daha iyi performans sunmak gerektiği gibi Jim'in noktanın yanında hep hata raporlama yüksek seviyede kodlama öneririm.

Peki bir sys admin PoV dan ... bazen kod eski veya yeni konuda yapabileceği bir şey yok. Bazı geliştiriciler düzgün hata ayıklama yoktur ve bir yöneticisi gerçekten önemli değil (değil emin olun bu kimseyi rahatsız eğer yaptığı şey ile kimsenin zaman kaybetmeyin eğer komik bakmak için gidiyor, ama sonuç öncesi ve sonrası aynı ise, o zaman gerçekten önemli değil). Ben çok mutlu 01:00 ben bildirimleri devre dışı bırakabilir ve herhangi bir gerçek sorunlar üzerinde durulacak.

Ayrıca, bu karanlıkta sadece bir vuruştur, ama belki () çağrıları hatalar.log kullanarak hata ayıklama açısından bu ile bir şey biraz fantezi yapmak için bir yol var.