PHP hata ayıklama için kullanabileceğiniz pek çok farklı fonksiyon ve işlev mevcuttur Bu fonksiyonlar sayesinde hataları tespit edebilir, ayıklayabilir ve performansınızı artırabilirsiniz Bu yazıda, PHP hata ayıklama için kullanılan temel fonksiyonları ve işlevleri ele alacağız
PHP'de kod yazarken, hataların meydana gelmesi kaçınılmazdır. Bu nedenle, doğru hata ayıklama işlevlerinin kullanılması oldukça önemlidir. işlevi, web geliştiricilerine belirli hata düzeylerinin (syntax errors, undefined variables, vb.) raporlanmasını etkinleştirir veya devre dışı bırakır. Bu sayede, kod dosyalarındaki hataların tespit edilmesi kolaylaşır.
error_reporting() işlevi ile, belirli hata düzeylerini etkinleştirme veya devre dışı bırakma işlemi yapılabilir. Bu işlevde belirtilen hata düzeylerinin hepsi raporlanabilir veya yalnızca belirtilen hata düzeyleri raporlanabilir. Örneğin, "error_reporting(E_ERROR | E_WARNING)" ifadesi, yalnızca hata ve uyarı raporlarına izin verirken, "error_reporting(E_ALL)" ifadesi, tüm hata ve uyarı senaryolarını raporlar.
Buna ek olarak, error_reporting() fonksiyonu, script içinde belirli bir hata düzeyi oluştuğunda, hata mesajını hep birlikte görüntülemek yerine, bu mesajları ayrı ayrı görüntülemeyi de sağlar. Bu sayede, kod bloklarının yanlış yerleştirilmesi, değişken isimleri için yanlış kullanımlar ve benzeri hatalar gibi sorunların tespiti kolaylaşır. Tüm bunlar hata ayıklama sürecini hızlandırır ve bir sonraki hata raporunun daha sağlıklı olmasını sağlar.
ini_set()
ini_set() Nedir?
Bir PHP uygulaması yürütüldüğünde, PHP'nin varsayılan ayarları, php.ini dosyasında tanımlı ayarlar tarafından belirlenir. Bu dosyadaki varsayılan ayarlar, zaman zaman uygulama ihtiyaçlarına göre değişebilir. Bu sebepten dolayı ini_set() işlevi, PHP'nin yapılandırması için geçerli bir dosyanın yolunu ayarlar.
Bunun sonucunda, belirli bir uygulama boyunca geçerli olan yapılandırma ayarlarını değiştirmek mümkün hale gelir. Yalnızca değişikliklerin uygulama çalışma zamanında yapılabilmesi sayesinde, farklı PHP uygulamaları, farklı yapılandırma dosyalarını kullanabilirler.
ini_set() İşlevinin Kullanımı
ini_set() işlevini kullanmak çok basittir. İşlev, kullandığınız PHP sürümüne göre farklı olabilir. Ancak genel kullanım aşağıdaki gibi basit bir şekilde tanımlanabilir.
Değer | Açıklama |
name | Ayar yapılacak anahtar kelime |
value | Ayarın değeri |
ini_set() İşleve Örnek Kullanım
- Using ini_set to change max_execution_time:
Aşağıdaki örnekte, max_execution_time ayarının değiştiriliyor. Bu, bir PHP betiğinin çalışabilme süresini belirlemek için kullanılır.
```php```Özetle
ini_set() işlevi ile, geçerli bir dosyanın yolunu ayarlayarak PHP'nin yapılandırması uygulama ihtiyaçlarınıza göre yapılandırılabilir. Bu, uygulama çalışma zamanında yapılandırma ayarlarını değiştirmenizi sağlar ve böylece farklı PHP uygulamaları için farklı yapılandırma dosyalarını kullanmanıza olanak tanır.
display_errors
display_errors ayarı, PHP'de meydana gelen hataların browser'da görüntülenip görüntülenmeyeceğini belirleyen bir ayar seçeneğidir. Bu ayar, bir PHP sayfasında bulunan hataların görüntülenip görüntülenmeyeceğine karar verir. Bu ayarın varsayılan değeri, aktif olan hataların browser'da görüntülenmesine izin verir.
Bu ayarın değeri değiştirilerek, hataların browser'da görüntülenmesi engellenebilir. Özellikle canlı bir web sitesinde, hata mesajları kullanıcılara bir güven eksikliği hissi yaratabilir ve site sahibi açısından da sorunların nedenini gizleyebilir.
Bu ayarı değiştirmenin birkaç yolu vardır. İlk olarak, PHP konfigürasyon dosyasında (php.ini) bu ayarın değiştirilmesi mümkündür. Bu dosyada, display_errors ayarı aranarak bu ayarın değeri değiştirilebilir.
Bunun yanı sıra, bu ayarın değeri PHP kodu içinde de değiştirilebilir. İni_set() işlevi kullanılarak bu ayarın değeri değiştirilebilir. Örneğin, aşağıdaki kod örneği ile display_errors ayarı kapatılabilir:
ini_set('display_errors', 0);
Display_errors ayarı, hata mesajlarının browser'da görüntülenip görüntülenmeyeceğini belirler. Bu ayarın kontrolünü yapmak, PHP hatalarını yönetmek için önemlidir.
error_log
işlevi, PHP kodlarında yer alan hataların veya uyarıların kaydedilmesi ve daha sonra bu kayıtlara başvurulabilmesi için oldukça kullanışlıdır. Bu işlev sayesinde, oluşan hatalar ve uyarılar bir hata günlüğü dosyasına yazdırılabilir.
Bu işlem için ilk olarak bir dosya oluşturulmalı ve error_log() işlevi kullanılarak bu dosyanın yolu tanımlanmalıdır. Böylece, PHP kodunda oluşan hatalar ve uyarılar, belirlenen günlük dosyasında saklanabilir. Hata günlüğü dosyasının oluşturulması ve dosya yolunun tanımlanması aşağıdaki örnek kod kullanılarak yapılabilir:
Örnek Kod: |
---|
$file = 'hatalar.log'; ini_set('error_log', $file); |
Yukarıdaki kodda, $file değişkeni oluşturulmuş ve hata günlüğü dosyanın adı olarak kullanılmıştır. Ardından, ini_set() işlevi kullanılarak belirtilen dosya adı, error_log ayarına tanımlandı.
Bu sayede, error_log() işlevi kullanılarak PHP kodundaki hatalar ve uyarılar belirlenen günlük dosyasına kolaylıkla kaydedilebilir. Ayrıca, hata günlüğü dosyası incelenerek, kodun performansı veya güvenliği gibi konularda da önemli bilgiler elde edilebilir.
log_errors
PHP hata ayıklama sürecinde kullanılan fonksiyonlar ve işlevler, programcıların hataları ve sorunları daha kolay bir şekilde tespit etmelerine olanak tanır. error_reporting() işlevi, belirli hata düzeylerinin raporlanmasını etkinleştirir veya devre dışı bırakır. ini_set() işlevi, PHP'nin yapılandırması için geçerli bir dosyanın yolunu ayarlar. display_errors ayarı, hata mesajlarının browser'da görüntülenip görüntülenmeyeceğini belirler. Hataların ve uyarıların yazılacağı hata günlüğü dosyasının belirlenmesinde ise log_errors ayarı kullanılır.
Log_errors ayarı, PHP hataları ve uyarılarının bir dosyaya kaydedilip kaydedilmeyeceğini belirler. Bu ayar, hataları kaydetmek için belirli bir dosyayı tanımlar. Örneğin, aşağıdaki kodu kullanarak bir hata günlüğü oluşturabilirsiniz:
Kod | Açıklama |
---|---|
ini_set('log_errors', '1'); | log_errors ayarını etkinleştirir. |
ini_set('error_log', '/var/log/php-error.log'); | error_log ayarını belirtilen dosyaya ayarlar. |
Bu kod, /var/log/php-error.log dosyasına hataların kaydedilmesini sağlar. Bu sayede, hataların neden kaynaklandığını belirlemek daha kolay hale gelir ve bu hataların tekrar oluşmasının önlenmesine yardımcı olur.
Ayrıca, log_errors ayarı hata günlükleri için kullanılan dosyanın boyutunu da sınırlandırmak için kullanılabilir. Boyut sınırlandırması, dosyaların büyüdüğü durumlarda hataların kaydedilmemesine veya başka bir yere kaydedilmesine neden olabilir. Bu nedenle, log_errors ayarı, hata günlükleri için ayrılan disk alanının nasıl kullanılacağı konusunda önemlidir.
error_reporting
error_reporting ayarı, PHP'nin hangi hata düzeylerinin raporlanacağını belirlemek için kullanılır. Bu işlev, sayfanızdaki olası hataları bulmak için oldukça önemlidir. error_reporting ayarını kullanarak, PHP'deki farklı hata türlerini ve düzeylerini açabilir veya kapatabilirsiniz. Bu işlev, özellikle büyük projelerde arıza ayıklama sürecini hızlandırabilir ve geliştirme zamanını kısaltabilir.
error_reporting ayarı, 7 farklı hata düzeyi uyarısı sağlar:
- E_ERROR
- E_WARNING
- E_PARSE
- E_NOTICE
- E_CORE_ERROR
- E_CORE_WARNING
- E_COMPILE_ERROR
- E_COMPILE_WARNING
Ayrıca, bu ayarın sıfıra ayarlanması hata raporlarının devre dışı bırakılacağı anlamına gelir. Bu nedenle, geliştirme sırasında error_reporting ayarının açık olduğundan emin olun.
debug_backtrace()
debug_backtrace() işlevi, hata ayıklama sırasında son çağrıdan başlayarak kodun hangi sırayla çalıştığının ayrıntılı bir listesini oluşturduğundan oldukça popülerdir. Bu Fonksiyonla; hangi dosyaların, hangi fonksiyonların çağrıldığı, satır numaraları ve fonksiyon argümanları hakkında bilgi edinilebilir.
Bazı durumlarda, kodun çalışma sırasının detayları hakkında bilgi sahibi olmak sorunu çözmek için oldukça faydalı olabilir. Bu sorunu çözmek için geriye doğru gitmek isteyen biri, debug_backtrace() fonksiyonunu kullanarak işlem sırasının neden hata ürettiğini görebilir. error_reporting() veya ini_set() işlevlerini kullanarak hataları ve raporları etkinleştirin ve debug_backtrace() fonksiyonunu kullanarak çıktılarını inceleyin.
debug_print_backtrace()
debug_print_backtrace() işlevi, PHP hata ayıklama aracı olan debug_backtrace() işlevine benzer. Fakat debug_backtrace() işlevinden farklı olarak, debug_print_backtrace() fonksiyonunun çıktısı, doğrudan ekrana yazdırılır.
debug_print_backtrace() işlevinin kullanımı, hata ayıklama sürecinde oldukça yararlıdır. Fonksiyon, kodun bir sırasına bağlı olarak belirli bir hata veya uyarının nerede meydana geldiğini bulmak için kullanılabilir.
debug_print_backtrace() işlevi, aşağıdaki parametreleri kabul eder:
Parametre | Açıklama |
---|---|
options | opsiyonel bir parametredir ve herhangi bir değişiklik yapmadan önce var olan yapılandırmayı saklar. |
limit | opsiyonel bir parametredir ve debug_print_backtrace() fonksiyonunun kaç seviyede çalıştırılacağını belirler. |
debug_print_backtrace() işlevi, ayıklama sürecini hızlandırmak için kullanıcılara büyük bir kolaylık sağlar.
trigger_error()
PHP'de hata ayıklama işlemleri yaparken, özel durumlarda belirli bir hatanın tetiklenmesi gerekebilir. Bu durumda kullanılabilecek bir fonksiyon da trigger_error() işlevi olacaktır. trigger_error() işlevi, istenilen bir durumda belirli bir hatayı tetikleyerek, ilgili hata mesajının anlık olarak görüntülenmesini veya bir log dosyasına kaydedilmesini sağlar.
Örneğin, istenilen koşulun sağlanıp sağlanmadığını kontrol eden bir işlem yapıldığında, koşulun sağlanmadığı durumda trigger_error() işlevi kullanılarak belirtilen hatanın tetiklenmesi sağlanabilir. Bu sayede, yapılan kontrollerdeki hatalar hızlı bir şekilde tespit edilebilir ve gerekli düzenlemeler yapılabilir.
Trigger_error() işlevinin kullanımı için ayrıca hangi hata düzeylerinde tetikleneceği de belirtilmelidir. Örneğin, E_USER_WARNING veya E_USER_ERROR gibi hata düzeyleri belirtilerek, ilgili hata mesajları uygun şekilde işlenebilir.
Bu sayede, PHP'de yazılan kodların daha stabil çalışması ve hata ayıklama işlemlerinin daha kolay bir şekilde yapılması sağlanabilir.
set_error_handler()
PHP'de hata ayıklama konusunda son derece önemli bir işleve sahip olan set_error_handler() işlevi, kullanıcıların kendi özel hata işleme fonksiyonunu kullanarak PHP hatalarını yönetmelerine olanak tanır. Bu işlev, varsayılan hata işleme fonksiyonu yerine kullanıcının belirlediği özel bir fonksiyon kullanacak şekilde ayarlanabilir. Bu sayede, kullanıcılar hata ayıklama sürecinde daha özelleştirilmiş bir yaklaşım sergileyerek, hata tespit sürecini hızlandırabilirler.
Bununla birlikte, set_error_handler() işlevinin doğru bir şekilde kullanılması oldukça önemlidir. Öncelikle, kullanıcıların hangi hata seviyelerinin işleneceğini belirlemesi gerekmektedir. Bu işlem için error_reporting() işlevi kullanılabilir. Ayrıca, kullanıcılar özel bir hata işleme fonksiyonu belirleyerek, bu fonksiyonun hangi hatalar için çağrılacağını da belirleyebilirler.
Set_error_handler() işlevi aynı zamanda kullanıcılara özel bir hata mesajı belirleme olanağı da sunar. Bu sayede, programlarındaki hataların ne zaman ve hangi koşullarda oluştuğunu daha iyi anlayabilirler. Ek olarak, bu işlev, hata ayıklama sürecini daha kolay hale getirir. Kullanıcılar, özel bir hata işleme fonksiyonu belirleyerek, hataları direkt olarak rapor edebilir ve böylece hata ayıklama sürecini daha az vakit harcayarak tamamlayabilirler.