Hata Denetimi
"Şablon sihirbazında (Wizard) (5.5.60) sürümünden beri döngülerin sonunda kullanılan : sembolünün kullanım zorunluluğu kaldırılmıştır."
Hata denetimi projenizde hangi hatanın oluşması durumunda nasıl davranması gerektiğini belirlemeniz için yapılır. Aşağıda projenizde hata ile karşılaşılması durumunda sistemin nasıl davranacağını belirleyebileceğiniz ayar yapılandırmaları yer almaktadır.
# Yapılandırma
Belirtilen dosyada yer alan ayarlar ve kullanımları şöyledir.
Error | ||
string | $mode = 'development' | Projenin hangi modda çalıştığıdır. Hata denetimi yapabilmek için bu modda kalması gerekir. |
int |
$errorReporting = E_ALL |
Hangi hata türlerinin raporlanacağıdır. Ön tanımlı olarak tüm hata türleri açıktır. |
array | $escapeErrors = [] | Hangi hata türlerinin dikkate alınmayacağıdır. Bu diziye hata türlerinin isimleri yazılabileceği gibi numarası da yazılabilir. |
array |
$exitErrors = [0, 2] |
Hangi hata türlerinde sistem çalıştırılmasının durdurulacağıdır. |
# Mode
Projenin yayın modudur. Projenin geliştirilme aşamasında yada yayında iken hata denetimin açık olup olmaması sağlanır.
development | Bu seçenek proje geliştirme aşamasında tavsiye edilir. tüm hata denetimlerini açık hale getirir. |
publication | Bu seçenek proje yayına alındığında tercih edilmelidir. Kullanıcıların olası hata veya kod kesintileri ile karşılaşmaması sağlanır. |
restoration | Bu seçenek proje üzerinde belli bölümlerde çalışma yapılacağı zaman tercih edilmelidir. Hem kullanıcılar olası hatalarla karşılaşmamış olur hemde çalışma yapılan bölüm için hata denetimi açık hale getirir. |
'mode' => 'publication'
# Error Reporting
ZN Framework hata denetim sistemini açmak veya kapatmak için kullanılır.
E_ALL | Hata denetimi açık hale gelir. |
0 | Hata denetimi kapalı hale gelir. |
'errorReporting' => E_ALL
# Escape Errors
Hangi hata türlerinin görmezden gelineceğini belirlemek için kullanılır. Yani genellikle tanımsız değişken veya dizi nesnelerine yönelik alınan undefined türü hataları kapatmak için kullanılabilir.
Aşdağıdaki dizide yer alan anahtar veya değerler bu ayar dizisine tanımlanabilir.
Hata Kodu | Hata Adı | Açıklama |
1 | ERROR | Ölümcül çalışma anı hataları. Bellek ayırma sorunu gibi giderilemeyen hatalar bu sınıfa girer. Böyle hatalar betiğin çalışmasının durmasına sebep olur. |
2 | WARNING | Çalışma anı uyarıları (ölümcül olmayan hatalar). Betiğin çalışması durmaz. |
4 | PARSE | Derleme anı çözümleme hataları. Çözümleme hatalarını sadece çözümleyici üretir. |
8 | NOTICE | Çalışma anı bildirimleri. Betikte bir hataya sebep olabilecek fakat betiğin normal çalışmasını esnasında oluşmayabilecek bir şeylerin saptandığını belirtir. Bu hata türleri PHP 8 ile beraber WARNING olarak üretilmektedir. |
16 | CORE_ERROR | PHP'nin başlatılması sırasında oluşan ölümcül hatalar. PHP çekirdeği tarafından üretilmesi dışında ERROR gibidir. |
32 | CORE_WARNING | PHP'nin başlatılması sırasında oluşan uyarılar (ölümcül olmayan hatalar). PHP çekirdeği tarafından üretilmesi dışında WARNING gibidir. |
64 | COMPILE_ERROR | Ölümcül derleme anı hataları. Zend betik motoru tarafından üretilmesi dışında ERROR gibidir. |
128 | COMPILE_WARNING | Derleme anı uyarıları (ölümcül olmayan hatalar). Zend betik motoru tarafından üretilmesi dışında WARNING gibidir. |
256 | USER_ERROR | Kullanıcı üretimi hata iletileri. PHP işlevi trigger_error() tarafından PHP kodunda üretilmesi dışında ERROR gibidir. |
512 | USER_WARNING | Kullanıcı üretimi uyarı iletileri. PHP işlevi trigger_error() tarafından PHP kodunda üretilmesi dışında WARNING gibidir. |
1024 | USER_NOTICE | Kullanıcı üretimi bildirim iletileri. PHP işlevi trigger_error() tarafından PHP kodunda üretilmesi dışında NOTICE gibidir. |
2048 | STRICT | Yazdığınızı PHP kodunun ileriye dönük uyumluluğunu ve birlikte çalışabilirliğini en iyilemek amacıyla PHP tarafından yapılan önerileri etkin kılar. |
4096 | RECOVERABLE_ERROR | Yakalanabilir ölümcül hata. Tehlikeli olma olasılığı bulunan bir hata oluştuğunu fakat yorumlayıcıyı kararsız durumda bırakmadığını belirtir. Hata, kullanıcı tarafından bir eylemci tanımlanarak yakalanmadığı takdirde betik ERROR hatasıyla sonlanır. |
8192 | DEPRECATED | Çalışma anı bildirimleri. Gelecek sürümlerle çalışmayacak kodlar hakkındaki uyarıları etkin kılar. |
16384 | USER_DEPRACATED | Kullanıcı üretimi kullanımı önerilmiyor bildirimleri. PHP işlevi trigger_error() tarafından PHP kodunda üretilmesi dışında DEPRECATED gibidir. |
32767 | ALL | Desteklenen (PHP 6'da STRICT dışında kalan) tüm hatalar ve uyarılar. |
<?php namespace Project\Controllers;
class Home extends Controller
{
public function main()
{
echo $undefined;
echo 'Code Continue';
}
}
Error:Undefined variable: undefinedFile :/var/www/html/Projects/Example/Controllers/home.php
Line :7
Code Continue
'escapeErrors' => ['NOTICE']
PHP 8 de benzer denetimi yapmak için aşağıdaki gibi kullanabilirsiniz. İleride bu tip kullanımdan kaynaklanan hataları almamak için aşağıdaki gibi düzenleme yapabilirsiniz.
'escapeErrors' => ['NOTICE', 'WARNING']
# Exit Errors
Oluşan hata türlerinden hangilerinde kod akışının durdurulacağına karar vermek için kullanılır. Yani dizi içinde belirtilen değerlerin türüne göre oluşan hatalarda kod akışı exit
ile sonlandırılırken diğerlerinde kod akışı devam eder.
Escape Errors seçenekleri ile aynıdır.
'exitErrors' => [2, 'NOTICE']
Error:Undefined variable: undefinedFile :/var/www/html/Projects/Example/Controllers/home.php
Line :9