Jump to content

Prestashop Hata Yönetimi [Makale]


Recommended Posts

Prestashop Hata Yönetimi
Herkese Merhaba;

Öncelikle:

Mağaza işletmecileri bu tür teknik yazıları okumalıdır. Teknik bilgilerden korkmamalıdır. Teknik bilginiz olmadan mağazanıza hakim olamazsınız. Ehliyet alırken neden motor dersi verildiğini düşünmelisiniz.


Prestashop bir çok modern PHP (bir yazılım dili) uygulaması gibi "hata yönetimi" (error handling) yeteneğine sahiptir. Peki ne işe yarar hata yönetimi:

 

Öncelikle hata kodlarının ne işe yaradığını yazalım.

PHP dili derlenirken/çalışırken oluşan teknik hataları detayları ile birlikte sayfalarınızda gösterebilir. Bu hata gösterimi ilgili sorunun, kaynaklandığı kod parçasını, kodun bulunduğu dosyayı hatta dosyanın satırını bile bulup size sunar. Bu şekilde hataların tespiti ve düzeltilmesi oldukça kolaylaşır.

Hata gösteriminin bu yararı yanında sakıncaları da vardır.

Çünkü hata kodları sitenize erişen herkese gösterilir. Bu hem kötü bir görüntü yaratır hem de kullandığınız sistem ile ilgili kritik bilgilerin başkaları tarafından görülmesi demektir.

PHP dilinde bazı fonksiyonlar hata gösterimini açıp kapatmaya yarar. Prestashop hataların gösterilip gösterilmeyeceği ile ilgili bu fonksiyonları

 

 

Prestashop Versiyonunuz 1.5.3'ten küçük ise 

 

Prestashop Kurulu Dizin/Config/config.inc.php dosyasında barındırır. Standart olarak hata gösterimi kapalıdır.

ilgili dosyayı açtığınızda ilk satırda (açıklama satırlarından hemen sonra)


@ini_set('display_errors', 'off');

satırını görebilirsiniz. Bu satırdaki off değeri gösterimin kapalı olduğu anlamına gelir. Eğer mağazanızda yolunda gitmeyen bir şeyler varsa ilk olarak buradaki off değerini onolarak değiştirmenizi öneririm. Bırakın PHP dili size ne derdi varsa anlatsın. Bazen hata veri tabanı ile ilgili olabilir. Bu tür durumlarda PHP size yeterince bilgi veremez.

Hata gösterim satırının hemen altında:


define('_PS_DEBUG_SQL_', false);

 

satırı bulunmaktadır. Bu satır veri tabanınızda yapılan işlemlerde (sorgularda) herhangi bir hata olursa hatanın detayını gösterme/göster seçeneğidir. Buradaki false değerini true veya 1 yapmanız halinde olası veri tabanı sorgu hataları da size gösterilecektir.
 

PrestaShop 1.5.3 ve üzeri versiyonlar için

/config/defines.inc.php dosyasını açın
 

define('_PS_MODE_DEV_', false);

satırını 

define('_PS_MODE_DEV_', true);

şeklinde değiştirin.



PHP hata kodlarının türleri vardır. Bunları bilmenizde fayda var çok kısa özetlersek: Kodların başladıkları ilk kelimeler:

 


Warning: ve Notice : (Uyarı düzeyi) program çalışmaya devam eder ama bir aksaklık oluşmuş ve php derleyicisi bunu es geçmiş, veya varsayılan bilgiler ile doldurmuştur. 

Fatal Error: (Ölümcül Hata) program çalışırken durmuştur.Telafi edilemez bir kodlama anlam sorunu var demektir. Genelde olmayan bir fonksiyon, olmayan bir sınıf nesnesi kullanıldığında oluşur. 

Syntax Error: (İmla Hatası) program hiç çalışmadan durmuştur.Derleme sırasında bir kodlama imla sorunu var demektir. Genelde eksik noktalı virgül gibi basit yazım hatalarında oluşur. Bu hata durumunda program hiç çalışmaz. )

Tabiki bunların dışında da hata sınıfları vardır ama bizi pek ilgilendirmeyecekler.

 

 

ÖRNEK

Şimdi örnek bir hatayı inceleyelim: Sayfamızda şu yazıyor:


notice undefined index 'id' in var/www/vhost/..... /prestashop/modules/mahmut/gulerce.php on line 9

 

  • İlk göze çarpan hatanın notice yani uyarı düzeyinde olmasıdır.
  • ikinci olarak sorunun /prestashop/modules/mahmut/gulerce.php dosyasında olduğunu görüyoruz
  • 'on line 9' yani dosyanın 9 satırındaymış aradığımız hata
  • Hataya sebep olan değişken veya dizi elemanı 'id' isimliymiş.

Şimdi bu sorunu çözmek oldukça kolay değil mi ?

Prestashop kullanıcılarının sık sık bahsettiği boş sayfa sorunu aslında Fatal veya Syntax hatası yüzünden çalışmayan bir kod parçasından kaynaklanır. Hata gösterimi de kapalı olduğu için boş sayfa görünür.

Yine bir çok prestashop mağazası aslında Warning ve Notice düzeyinde bir sürü hata ile doludur fakat hatalar gizlendiği için görülmez.

 

Hata gösterimi mağaza tasarım aşamasında iken açık tutulmalıdır. Mağaza yayına alındığında ise kesinlikle kapatılmalıdır. Sunucu değişikliği veya ansızın ortaya çıkan bir hata için geçici olarak yeniden açılmalıdır.


Hataların gösterimini kontrol ederek hem sorunlarınızın çoğunu çözebilir hem de işiniz bitince gösterimi kapatabilirsiniz.

 

ÖNEMLİ

Hata gösterimi modunu açık unutmayınız. Hata gösterim modu açıkken ziyaretçileriniz bu hata kodlarını görebilir. Sitenizin hem görüntüsü hem güvenilirliği zarar görebilir. 

 

 

 

Makaleler ile ilgili olarak:
Bu makalelerimin amacı uzun yıllar boyu sizlerden not aldığım bilgilerin ve işimin getirdiği teknik-teorik-pratik tecrübelerin derlenip sizlerle paylaşılmasıdır. Şu ana kadar 1500+ e-ticaret tecrübesi ile binlerce mağazacıyı ve onlarca tedarikçiyi dinlemiş, yüzlerce not almış, bir çok toplantı ve seminere konuşmacı/dinleyici olarak katılmış bir yazılım uzmanı olarak, bu deneyim birikimini paylaşmak üzere, açık kaynak topluluğumuzda makaleler yazmaya karar verdim. Makaleleri dilediğiniz yerde alıntı kaynağını göstermek şartı ile yayınlayabilirsiniz herhangi bir hak kısıtlaması yoktur. Bilgiler bilimsel veya pratik çalışmalara istinaden oluşturulmuştur. Geliştirilmesine katkı sunduğunuz için teşekkür ederim.
Mahmut GÜLERCE

 

Edited by MahmutGulerce (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...