Herhangi bir "Sorunlar" var mı

0 Cevap php

Ben PHP göreli bir acemi değilim, ama PHP'nin hata işleme istisna dışında (ve bana die() başladı alamadım) serpiştirilmiş hataları ve uyarılar ile, bir getto biraz gibi geliyor bana. Gibi, ben, yaratma, yorumlama ve benim uygulamada tüm hata davalarına hakkında gitmek için en iyi nasıl emin değilim.

Saldırı Benim genel planı aşağıda kabaca gibidir:

  1. Geldikleri gibi hataları sarmak için set_error_handler() kullanılarak, Özel durumlar içine tüm uyarıları / hataları dönüştürün.
  2. Kod Savunmaya preemptively yanlış gitmek için bekliyoruz şeyler kontrol. Ben doğrudan hata işleyemez sadece istisna atar. Gerektiğinde olağan try/catch blokları kendimi atmayın istisnalar işlemek için yerinde olacaktır.
  3. O kendi try/catch benim tüm uygulama (yani benim index.php nokta-giriş dosyası) sarın. Bu başarısız olursa, ben bir HTTP 500 atmak ve uygun bir hata sayfası göstereceğim. Ben hala bozuk bir şablon dosyası gibi garip durumları kapsayacak böylece bu büyük ölçüde - Muhtemelen bu sayfayı tek bir derlenmiş dosya yerine başlığı / beden / bitişin bir koleksiyonu içerir olacaktır. Google'ın 500-sınıf hata sayfası çok farklı, her şeyden onlar koymak bakar neden bu olduğunu varsayalım.
  4. Ben kendi istisna karar verirseniz ben ayarlıyoruz her şeyi işlemek için bekliyorum beri # 2 ve # 3, bir sonuç olarak, ben de not hatayı yakalamak, ve bunun yerine izin bekliyorum kabarcık tüm yol benim üst düzey işleyicisi kadar. Burada düşünce ne zaman olur bunu işleyemez eğer, ben muhtemelen başka bir yerde bunu işlemek için kötü donanımlı olmam. Ben bu hataları kendi alt sınıfı vererek düşünüyorum - belki CriticalErrorException - Bu bir e-posta yumurtlamaya / benim günlükleri doğrudan tespit edilebilir bu yüzden çabuk içine bakabilirsiniz. Genel olarak, ben bu may dev ne olduğunu şeyler olmasını bekliyorum, ancak üretim tarafından ütülenmelidir.
  5. Üst bunu yapan herhangi bir hata, bir günlük dosyası yerine çalışma ile, veritabanında oturum alır. Kritik hatalar, yukarıda belirtildiği gibi, bir e-posta tetikler. Raporlama dosyasına üzerinde başarısız olursa - yani DB hata var - bu da bir e-posta tetikleyecektir.

Ben bu oldukça iyi çoğu durumlarda kapsar düşünüyorum, ama ben PHP çok yeniyim dediğim gibi ben bakan değilim köşe durumlarda ya da garip davranışlar varsa ben bilmiyorum.

Planımda kusurları nelerdir? Bunları nasıl aşabiliriz?

0 Cevap