Cuma, 1 Ocak 2010

PHP Sürümlerinde Dikkat Edilmesi Gerekenler

 

CodeIgniter 1.7.2. sürümü PHP`nin (şimdilik) son sürümü olan 5.3.0 sürümü ile uyumlu olduğunu kendi sitesinden okuduk. Çekirdek kodlarında yapılmış değişiklikleri kodları inceleyenler de takip edebilir. Ancak öyle bir hata var ki, ancak rast gelirseniz çözümü için aranıp duruyorsunuz. Bu yazıda hatayı ve en basit düzeltme yöntemindem bahsedeceğim.

Eğer kullandığınız PHP sürümü 5.3.0 ise view dosyalarında php değişkenlerini yazdırmak için eşitlik ifadesini kullanıyorsanız:

<link href="<?=base_url()?>assets/css/styles.css" rel="stylesheet" type="text/css" />
//ya da:
<?=$degisken_adi?>

PHP 5.3.0 versiyonlu kurulumda çalışmayacak ekrana boş değer geri dönecektir. Bu hatayı gidermenin yolunu uzun uzun yazmakla çözmüşler. Üstteki cümleyi aşağıdaki gibi çevirince hata gideriliyor:

<link href="<?php echo base_url()?>assets/css/styles.css" rel="stylesheet" type="text/css" />
//ya da:
<?php echo $degisken_adi?>

Bu tür tespiti zor hatalardan etkilenmemek için çalışan sistemlerin (eğer çok önemli güvenlik açıkları yoksa) yeni sürümlere yükseltilmesinden önce iki kere düşünülmesini tavsiye ederim.

@15 Ocak 2010: Gelen görüşler üzere daha önceki adı "PHP 5.3.0 Sürümündeki Hata" olarak yazdığım bu yazının adını, PHP sürümlerinde dikkat edilmesi gerekenler olarak değiştirdim.

Yorumlar

Bence bunu bir hata olarak nitelemek yanlış olur. PHP 5.3 sürümü ile birlikte php.ini'deki short_open_tag seçeneği kapalı olarak gelmeye başladı. Yani istersek php.ini dosyasından tekrar etkinleştirebiliriz.
Ayrıca eski uygulamalardaki bu problemi Codeigniter config.php dosyasındaki rewrite_short_tags seçeneğini TRUE yaparak çözebiliriz.

@Mustafa: Haklısın hata değil. PHP6 ya geçerken ara sürüm olarak PHP5.3 ü kullanıyor sanırım. Daha önce kullanılarn ereg_replace, split gibi PHP fonksiyonları da yeni sürümde kullanılamıyor. PHP6 da ise tümden kaldırılmış.

Konunun php sürümüyle bir alakası bulunmuyor Fatih Bey. Short Tag'ın aktif olup olmadığıyla alakalı bir konu ve bunu hata olarak kabul edemeyiz sanırım. :) Sonuçta herkesin default php.ini ayarları farklı olabilir. (:

Ben yazılım geliştirirken short tag'ı kapalı tutuyorum. Short tag kapalı olan hostinglerde ve root erişiminin olmadığı hesaplarda sorun yaşamamak için.

Değerli görüşleriniz için teşekkür ederim.

Yorum Ekle