PHP Üzerinde Neden <? Kullanmamalıyız

PHP Üzerinde Neden <? Kullanmamalıyız

Hepinize merhaba dostlarım 😊. Artık uzun uzun anlatmaya gerek yok hepimiz için yoğun hafta ve benim için yoğunun  da yoğunu, stresli ve bir o kadar da eğlenceli bir haftanın sonunda gelen mutlu biz pazar günü ve yepyeni bir konu. 2 Yıllık yazılım hayatımda neredeyse hiç ama hiç karşıma çıkmayan, bu hafta öğrenmiş olduğum ve sizlerle de paylaşmayı canı gönülden istediğim bir konu ile karşınızdayım. 

Kusuruma bakmayın dostlarım sizlerden daha çok heyecanlı olduğum için sizlere söz hakkı verme gibi bir duruma gelemedim. Ama sizin aklınızda olan sorulara gelecek olursak aklınızda hemen beliren soru şu olacaktır

Ya arkadaş hadi pazar günü geldi çattı yeni konumuz da belli eyvallah, normalde <?php kullanırken sorun yok da <? kullanınca sorun var hadi bunu da geçtik <?php yazarken baş kısmında <? var onu napcez 😃

şeklinde soru muhakkak aklınızda yer etmiştir. Hak veriyorum bununla ilk kez karşılaşıyorsunuzdur veya daha önce de karşılaşan dostlarım vardır. Benden size tavsiye KULLANMAYIN, KULLANDIRTMAYIN !!!

Neden diye soracak olursanız dostlarım araştırdığım ve sektörde uzun yıllar hizmet veren arkadaşlarıma, hocalarıma sordum, hatta olmadı kod kısımlarına beraber baktık, dirsek çürüttük sonunda hatanın sebebini bulduk

Konuya en başından bakacak olursak dostlarım herhangi bir php dosyası ile çalışmaya başladığımızda  editör (Eğer PHPStorm gibi akıllı editör kullanıyorsanız) bize

<?php
// dostum burası senin mekanın
// istediğin php kodunu yaz
// rahatına bak :)

şeklinde bir dosya açıyor (Tabii yorum satırlarını vermiyor onu ben eğlencesine yazdım 😅). Şimdi sizin aklınızda şu sorular belirdi

Hocam durun durun bu kısımda bizim sorularımız olacak. Biz bir php dosyası oluşturduğumuzda tamam açılış tag leri bize sunuluyor iyi tamam da kapanış tag i yok ? Bu bize bir hata sağlar mı kapatmazsak ?

Beklediğim soruydu dostlarım aslında bu. Özellikle php yazmaya yeni başlamış dostlarım varsa bu hatayı hemen gördü ve sordu diyebilirim. Bu hatayı da araştırdım.

Normalde bunu genelde o sayfa üzerinde sadece php yazılacak ise (örneğin controller veya islem.php dosyaları olabilir) bu kapanış etiketini belirtmememiz herhangi bir sakınca sağlamaz

Peki Ya Belirtirsek ?

Belirtirsek dostlarım bize hafiften hafiften yazılımımız "Headers Already Session" olarak hatalar belirtecektir. Bu hataya da bakacak olursak dostlarım isminden de anlaşılacağı üzere session yani sistemimiz üzerindeki oturumlar, yönlendirmeler vs vs bir sürü yerde hata olacaktır. Mesela örnek verecek olursak bir e-ticaret sitesi yazdınız ve yayına aldınız varsayalım. Bu siteye de bir müşteri geldi ve ürünleri sepete ekledi diyelim. Bu ürünler ödeme yapılmadan önce sepette tutuluyor bunu hepimiz biliyoruz. Sistemde bunun gibi kapanış etiketini kullandığımızda session hatası olacak ve kullanıcının sepet verileri çöp olacak uçacak kaçacak gidecek.

Durumun sonunda ne oldu ? Müşteri siteye karşı soğudu ve bu siteye tekrar gelmek istemedi. Alın size müşteri kaybı 😥

Bunu Asla Yapmayalım Dostlar !

Hadi bir önceki başlığı inceledik onda kapanış etiketini belirttik ve session hatası aldık. İşte makalemizin genel konusu olan kod dizimi

şeklinde bir kullanımı sakın ha sakın yapmayın dostlarım. Ne kadar tehlikeli olduğunu Kolpaçino filminden alıntı yaparak bile açıkladım 😅. Ne kadar tehlikeli olduğunun sebebini kendi yaşadığım durumdan açıklayayım

Teslim aldığım proje üzerindeki temel çatı

şeklinde oluşturulduğu için sistemde birtakım yerlerde hata aldım. Session lar bazı sayfalarda sorun yok iken bazı sayfalarda nedensiz şekilde login sayfasına yönlendirme durumunun olduğunu sezdim. Bu hataların öncelikle sunucu tarafında olduğunu düşündüm. Sunucuda hostingi silip tekrar yükledim vs vs bir sürü işlemler sonucunda hatanın sunucudan ziyade kodların yukarıdaki belirtildiği şekildeki gibi olduğunu öğrendim.

İnanır mısınız o kodları düzeltmek ömrümü yedi ömrümü 😅. Ama Allah'a şükürler olsun çok kısa bir sürede bu hataların hızlıca düzeltilmesini ve sistemin performanslı bir şekilde çalışmasını sağladım. 

Pekii hangi şekilde kullanımlara izin var ?

Sorusu sizden gelmeden ben hemen cevaplayayım dostlarım. Öncelikle her zamanki kullanım yöntemimiz olan

<?php // sen var ya kralsın kraaal ! İşte bu şekilde kullanabilirsin ?>

şeklinde açılış ve kapanış taglerini kullanabiliriz. Aynı zamanda buna ek olarak

<?= "Beni bu şekilde kullandın ya senin canını yerim :D" ?>

şeklinde de kullanabiliriz dostlar. Şimdiiii sizin aklınızda olan soruya bir daha gelelim

Hocam ikinci kullanım bize biraz farklı geldi açıklayabilir misiniz ?

Sorusu beni mutlu etti dostlarım iyi ki varsınız 😊. Sorunuzun cevabına gelecek olursak ikinci örnekteki kullanım aslında

<?php echo "Beni bu şekilde kullandın ya senin canını yerim :D"; ?>

kullanımının kıslatılmış halidir diyebilirim. Ternary If Else vs kullanmadan sadece ve sadece echo komutu ile ekrana bastırma gibi durumunuz varsa bunu yukarıdaki belirttiğim kısa kod ile yapabilirsiniz 😊

 

Eveeeeet dostlarım. Bu yazımda sizlere php programlama dili üzerinde "Neden <? Kullanmamalıyız ?" konusundan elimden geldiğince dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Sizlere tavsiyem elinizden geldiğince bu kullanıma  dikkat edin. Benim birkaç günüm çöp oldu sizin gününüz çöp olmasın cidden tek isteğim bu. Eksik veya yanlış bir anlatım yaptıysam benimle iletişime geçmekten çekinmeyin 😊.

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊 

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıPHP Üzerinde SimpleImage Kullanımı
Sonraki YazıPHP Üzerinde Dosya Sıkıştırma
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz