Bu işlevlerin davranışı php.ini içindeki ayarlardan etkilenir.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
error_reporting | NULL | PHP_INI_ALL | |
display_errors | "1" | PHP_INI_ALL | |
display_startup_errors | "0" | PHP_INI_ALL | |
log_errors | "0" | PHP_INI_ALL | |
log_errors_max_len | "1024" | PHP_INI_ALL | |
ignore_repeated_errors | "0" | PHP_INI_ALL | |
ignore_repeated_source | "0" | PHP_INI_ALL | |
report_memleaks | "1" | PHP_INI_ALL | |
track_errors | "0" | PHP_INI_ALL | PHP 7.2.0 ve sonrasında kullanımı önerilmiyor. |
html_errors | "1" | PHP_INI_ALL | |
xmlrpc_errors | "0" | PHP_INI_SYSTEM | |
xmlrpc_error_number | "0" | PHP_INI_ALL | |
docref_root | "" | PHP_INI_ALL | |
docref_ext | "" | PHP_INI_ALL | since PHP 4.3.2'den beri kullanılabilmektedir. |
error_prepend_string | NULL | PHP_INI_ALL | |
error_append_string | NULL | PHP_INI_ALL | |
error_log | NULL | PHP_INI_ALL | |
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | PHP 7.3.0 ve sonrasında mevcuttur. |
syslog.filter | "no-ctrl" | PHP_INI_ALL | PHP 7.3.0 ve sonrasında mevcuttur. |
syslog.ident | "php" | PHP_INI_SYSTEM | PHP 7.3.0 ve sonrasında mevcuttur. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
error_reporting
int
Hata raporlama seviyesini tanımlar. Değiştirge olarak ya bir bit alanını ifade eden bir tamsayı ya da isimli sabitler verilebilir. Hata raporlama seviyeleri ve sabitleri Öntanımlı Sabitler sayfasında ve php.ini içinde açıklanmıştır. Hata raporlama seviyesini çalışma anında belirtmek için error_reporting() işlevini kullanabilirsiniz. Ayrıca, display_errors yönergesine de bakınız.
PHP 5.3 ve sonrasında öntanımlı değer:
E_ALL
&
~E_NOTICE
&
~E_STRICT
&
~E_DEPRECATED
. E_NOTICE
,
E_STRICT
ve E_DEPRECATED
seviyesinden hatalar burada gösterilmez. Bunları yazılımınızı
geliştirirken kendiniz ekleyebilirsiniz.
PHP 5.3.0 öncesinde öntanımlı değer:
is E_ALL
&
~E_NOTICE
&
~E_STRICT
.
Bilginize:
E_NOTICE
seviyesindeki hataların geliştirme aşamasında gösterilmesinin bazı yararları vardır. Hata ayıklama amacıyla kullanıldığındaE_NOTICE
iletileri kodunuzdaki olası hatalar hakkında sizi uyarır. Örneğin atanmamış değerlerin kullanımı hakkında bir uyarı alırsınız. Özellikle yazım hatalarını bulmakta yardımcı olarak hata ayıklamakla zaman kaybetmekten sizi kurtarır.E_NOTICE
iletileri kötü yazım tarzı için de sizi uyarır. Örneğin, PHP"item"
indisini bir sabit olarak ele almayı deneyeceğinden$arr[item]
yerine$arr['item']
yazmak daha iyidir. Belirttiğiniz indis bir sabit değilse PHP bunu dizinin bir anahtarı (dizgesel indisi) olarak kabul edecektir.
Bilginize:
PHP 5.4.0 öncesinde
E_ALL
ile birlikte açıkça belirtilmedikçeE_STRICT
seviyesinden hata raporları etkin olmayacaktır. PHP 5.4.0 sonrasındaE_STRICT
seviyesinden hataların geliştirme aşamasında gösterilmesinin bazı yararları vardır. STRICT iletiler, kodunuzun en iyi birlikte çalışabilirliğini ve iletilebilirliğini sağlamaya yardımcı olabilecek öneriler sunar. Bu iletiler, duruk olmayan yöntemlerin duruk olarak çağrılması, kullanılan bir özellik tanımlıyken uyumlu bir sınıf tanımında tekrar tanımlanması ve PHP 5.3'ten önce bazı kullanımdan kaldırılmış özelliklerin (örnekleme sırasında nesnelerin başvuruya göre atanması gibi)E_STRICT
hatası ataması gibi şeyler içerebilir.
Bilginize: PHP dışında PHP sabitleri
httpd.conf gibi PHP dışı yerlerde PHP sabitlerini kullanmak isterseniz, bunların tamsayı değerlerini kullanmak zorunda kalmak anlamlarını anlamayı zorlaştırdığı için elverişli olmayacaktır. Zamanla başka hata seviyeleri ekleneceğinden azami değer de (
E_ALL
değeri) değişecektir. Bu bakımdanE_ALL
yerine şimdiki ve gelecekteki tüm bit alanlarını kapsamak üzere2147483647
gibi büyük bir değer kullanabilirsiniz (E_ALL
'dan başka tüm hataları da içerir).
display_errors
string
Hataların çıktının bir parçası olarak ekrana basılıp basılmayacağını veya bunların kullanıcıdan gizlenip gizlenmeyeceğini belirler.
"stderr"
değeri hataları stdout
(standart çıktı) yerine stderr
'e (standart hataya)
gönderir. Bu değer PHP'nin 5.2.4 sürümünden beri kullanılabilmektedir.
Eski sürümlerde bu yönerge sadece bool türünde değer
kabul ederdi.
Bilginize:
Bu özellik sizi geliştirme aşamasında desteklemek amacıyla konmuştur ve kullanıcıya yönelik işlemler için asla kullanılmamalıdır.
Bilginize:
Bu yönergeye çalışma anında (ini_set() ile) değer atanabilse de, eğer betik ölümcül bir hataya sahipse bunun herhangi bir etkisi olmayacaktır. Bunun sebebi çalışma anında istenen eylemin yerine getirilmeyecek olmasıdır.
display_startup_errors
bool
display_errors
etkin olsa bile PHP ilk başlatılırken
oluşan hatalar gösterilmez. Hata ayıklamıyorsanız
display_startup_errors
yönergesinin
değerini off
olarak bırakın.
log_errors
bool
Betiğin hata iletilerinin sunucunun hata günlüğüne veya error_log ile belirtilen dosyaya kaydedilip kaydedilmeyeceğini belirler. Bu seçenek sunucuya özgüdür.
Bilginize:
Sitenizde hataları kullanıcıya göstermek yerine hata günlüklerine kaydetmenizi hararetle tavsiye ederiz.
log_errors_max_len
int
Hata günlüğü iletilerinin azami uzunluğunu bayt cinsinden belirlemek için kullanılır. Kaynak hakkındaki error_log bilgisi buna eklenir. 1024 öntanımlı değer olup, 0 belirtildiği takdirde hata günlüğü iletilerininin uzunlukları sınırlanmaz. Bu uzunluk günlüğe kaydedilen ve gösterilen hata iletilerinden başka $php_errormsg iletilerine de uygulanır fakat error_log() gibi açıkça çağrılan işlevlerde uygulanmaz.
int türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz.ignore_repeated_errors
bool
Yinelenen hata iletileri günlüğe kaydedilmez.
ignore_repeated_source
yönergesinin değeri true
olmadıkça yinelenen
hataların aynı dosyanın aynı satırında oluşması gerekir.
ignore_repeated_source
bool
Yinelenen iletiler yok sayılırken ileti kaynağının da yoksayılmasını
sağlar. Bu yönergenin değeri On
olduğu takdirde,
farklı dosyalardan veya farklı satırlardan kaynaklanan yinelenmiş
iletileri hata günlüklerine kaydedemezsiniz.
report_memleaks
bool
Bu yönergenin değeri Off
olduğu takdirde, bellek
sızıntıları (stdout
'ta veya günlük dosyasında)
gösterilmez. Bu sadece, hata ayıklama derlemesinde ve
error_reporting yönergesinde
E_WARNING
listeye dahil edilmişse etkilidir.
track_errors
bool
Bu yönergenin değeri On
olduğu takdirde, son hata
iletisi daima $php_errormsg değişkenine atanır.
html_errors
bool
Hata iletilerine HTML etiketleri dahil edilmez. Yeni HTML hataları biçeminde, doğrudan kullanıcıyı hatayı veya hataya sebep olan işlemi açıklayan bir sayfaya yönlendiren tıklanabilir hatalar üretilir. Bu gönderimler docref_root ve docref_ext yönergelerinden etkilenir.
xmlrpc_errors
bool
Normal hata raporlaması kapatılıp, hatalar XML-RPC hata iletileri olarak biçemlenir.
xmlrpc_error_number
int
XML-RPC hata dizisinin faultCode
elemanının değeri
olarak bu değer kullanılır (bkz. xmlrpc_is_fault()).
docref_root
string
Yeni hata biçemi, hatayı veya hataya sebep olan işlemi
açıklayan bir sayfaya bir gönderim içerir. Bu gönderimin bir kılavuz
sayfasına yönlendirmesi durumunda, kılavuzun dilinizdeki çevirisini
indirebilir ve bu yerel kopyanın bulunduğu yeri bu yönergede
belirtebilirsiniz. Örneğin, kılavuzun yerel kopyasına
"/manual/"
ile erişilebiliyorsa bunu
docref_root=/manual/
şeklinde belirtebilirsiniz.
Buna ek olarak, kopyanızın dosya uzantısını
docref_ext
yönergesinde belirtebilirsiniz (örnek:
docref_ext=.html
). Harici kaynaklara gönderimler
de mümkündür. Örnekler:
docref_root=http://manual/en/
veya
docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon
&url=http%3A%2F%2Fwww.php.net%2F"
Bazı durumlarda docref_root
değerinin sonuna bir bölü
çizgisi "/"
eklemeniz gerekebilir. Fakat yukarıdaki
ikinci örnekteki gibi bir durumda buna asla gerek yoktur.
Bilginize:
Bu özellik, bir işlevin açıklamasına bakmayı kolaylaştırması nedeniyle daha ziyade geliştirme aşamasında kullanmanız için tasarlanmıştır. Hataları son kullanıcıya göstermek amacıyla kullanılmamalıdır.
docref_ext
string
docref_root yönergesine bakınız.
Bilginize:
docref_ext
değeri bir nokta"."
ile başlamalıdır.
error_prepend_string
string
Bir hata iletisinden önce çıktılanacak dizge.
error_append_string
string
Bir hata iletisinden sonra çıktılanacak dizge.
error_log
string
Hataların kaydedileceği dosyanın adı. Dosya, HTTP sunucunun kullanıcısı
tarafından yazılabilir olmalıdır. Eğer syslog
özel
değeri kullanılmışsa hatalar bir dosya yerine sistemin hata günlüğüne
gönderilir (Unix'te syslog(3), Windows NT'de olay günlüğü). Windows
95'te sistem günlükçüsü desteği yoktur. Ayrıca,
syslog() işlevine de bakınız. Yönerge tanımsız
bırakılmışsa hatalar SAPI hata günlükçüsüne gönderilir. Örneğin bu,
Apache'nin hata günlüğü veya CLI için stderr
olabilir.
syslog.facility
string
İletiyi ne tür bir uygulamanın günlüklediğini belirtir. Sadece "syslog" içinde error_log etkinse etkilidir.
syslog.filter
string
Günlüklenen iletileri süzecek süzgeçleri belirler.
İzin verilen karakterler değiştirilmeden yazılır.
Diğerleri \x
ile öncelenen onaltılk karşılıkları
ile belirtilir. 3 süzgeç türü desteklenmektedir:
all
– tüm karakterler
no-ctrl
– denetim karakterleri hariç
tüm karakterler
ascii
– basılabilir tüm ASCII
karakterler ve NL
syslog.ident
string
Specifies the ident string which is prepended to every message. Only effective if error_log is set to "syslog".