Daha sofistike error_handler ile E_NOTICE? == E_DEBUG, kaçınarak isset () ve @

0 Cevap php

Hangisi daha iyi yollar uygulama mantığı isset() bolluğu önlemek, ve when gerekli hata ayıklama mesajları (E_NOTICE) görmek için yeteneğini korumak için var?

Karine ilk: E_NOTICE bir yanlış isim ve aslında E_DEBUG olmalı, bir hata değildir. Bu (PHP hala bir betik dili) tanımsız değişkenler için de geçerlidir Ancak, bazı dosya sistemi fonksiyonları vs de atıyorlar. Dolayısıyla üzerinde E_NOTICEs ile develop arzu edilir.

Ancak tüm ayıklama bildirimler o introduce isset() and @ throughout the application logic. There are certainly many valid use cases for isset/empty, yet overall it seems syntactic salt ortak (talihsiz) PHP deyim ve aslında hata ayıklama engelleyebilir neden olan, yararlı değildir.

Şu anda bir error_reporting imleyicisini ve açma / kapama anahtarı, bir dilsiz kullanmak yüzden:

// javascript:(function(){document.cookie=(document.cookie.match(/error_reporting=1/)?'error_reporting=0':'error_reporting=1')})()

if (($_SERVER["REMOTE_ADDR"] == "127.0.0.1")
    and $_COOKIE["error_reporting"])
{
    error_reporting(E_ALL|E_STRICT);
}
else {/* less */}

Ancak yine de bir kez etkin arama için çok bildirimleri sahip sorunu ile bana bırakır. Geçici çözüm olarak ben @ hata bastırma operatörü faydalanabilirler. Bir özel hata işleyicisi hala bastırılmış E_NOTICEs alabilir çünkü isset aksine () tamamen seçenekleri ayıklama öldürmek değil. Yani potansiyel sorunlar expected ayıklama bildirimlerini ayırmak için yardımcı olabilir.

Ancak bu aynı şekilde tatmin edici bulunuyor. Dolayısıyla soru. Herkes kullanabilir ya da daha gelişmiş bir PHP hata işleyicisi biliyor mu. Ben bir şey hayal ediyorum:

  • (CSS mutlak konumlandırma ile?) çıkışları filtresiz hataları / uyarılar / duyurular
  • ve AJAX-etajer izin istemci tarafı muayene ve bastırma
  • ama aynı zamanda expected and "approved " bildirimler veya uyarıları bir filtreleme listesini uzak kaydeder.

Elbette bazı çerçeve zaten böyle bir kullanıcı hatası işleyicisi olmalıdır.

  • Temelde uyarı / bilgi yönetimi ilgileniyorum.
  • Tam E_NOTICE baskılama gerçekten arzu edilmez.
  • E_NOTICES are istedi. Sadece onları daha az. Varsayılan başına ben beklenen değil, umurumda olabilir olanları vurgulayın.
  • Ben? Düzen = parametresi, beklenen bir DİKKAT occours olmadan çalıştırın. Ben bir kez daha haberdar gerekmez beklenen nedeniyle Hangi.
  • Ancak, tam hata ayıklama modunda, ben varlığı (ya da daha ilginci yokluğu) ile tanımsız değişkenlerin varlığını görmek isteyen ne zaman ayıklama bildirimler dedi. -> Ben onlar için ne düşünüyorum. Isset kaçınmak dil-örtük baskı ifadeleri getiriyor.
  • Ayrıca bu sıradan PHP form işleme semantik katılık bir zorunluluktur uygulama alanları, uygun olmayan kullanım durumları hakkında olduğunu biliyoruz.

Aman, birisi bu yeniden yardım lütfen. Uzun açıklama başarısız.

0 Cevap