Ders 4: Joomla Framework'unu tanıyalım - JRequest

Bu habere oy verin
(0 oy verilmiş)
Merhaba arkadaşlar,

Bugünkü dersimiz Joomla'nın JRequest sınıfını tanımak olacaktır.

Bir önceki dersimizde JFactory sınıfı ile tanıştık. Onun en çok kullanılan fonksiyonlarının kullanımını öğrendik. Eklenti yazabilmek için Joomla'nın gerekli temel sınıflarını tanıyana kadar böyle devam edeceğiz. Sonra eklenti yazmaya yani öğrendiklerimizi uygulamaya geçeceğiz.

Şunu da söyleyelim, bu sınıflar Joomla'nın temelini oldukları için Joomla tarafından otomatik olarak yüklenir, include filan etmemize gerek yok.

JRequest

JRequest, sayfa yüklenirken kullanılan global veya linkteki değişkenleri almaya ve/veya oluşturmaya yarayan bir sınıftır. Tabii ki bu işlemleri saf PHP ile de yapabiliriz ki zaten JRequest de PHP'nin $_GET, $_POST, $_FILES, $_COOKIE, $_ENV, $_SERVER ve $_REQUEST değişkenlerini kullanır ama JRequest sınıfnı kullanırsak daha hızlı ve güvenli veri alış verişi sağlarız.

Hızlı Erişim

Saf PHP ile formdan gelen veriyi almak için $_POST veya $_GET değişkenlerini kullanırız. Verinin hem post hem get yoluyla gelme ihtimali varsa bir if else kontrolü koymamız gerek:
if (isset($_POST['id'])) {
	$id = $_POST['id'];
}
else if (isset($_GET['id'])) {
	$id = $_GET['id'];
}

Ama JRequest kullanırsak tek satırda veriyi direk çekebiliriz:
$id = JRequest::getInt('id');

Tabii ki istersek veriyi almak istediğimiz yolu da belirtebiliriz, 0 (sıfır) değeri veri yoksa dönecek olan varsayılan değerdir:
$id = JRequest::getInt('id', 0, 'post');


Veri Türleri ve Güvenlik

Malum, güvenlik çok önemlidir. Güvenliği sağlamak için de yapmamız gereken en temel şey, dışarıdan veri alırken bilinçli alıp işlemektir. Örneğin, eğer linkten bir değişken alacaksak mutlaka değişkenin olmasını istediğimiz türünü (sayı, kelime, dizi vs.) belmemiz gerek.

Saf PHP'de bunu bizim filtrememiz gerek ama JRequest kullanırsak otomatik olarak bize kontrol edilmiş veri döner. Gelin hep beraber JRequest sınıfının fonksiyonlarını inceleyip bize ne tür faydalar sağlayacağını öğrenelim:

getInt
Sayısal değer getirir. Yukarıdaki örnekte olduğu gibi, gelen veriyi veritabanında sorgulayacaksak ve kontrol edilecek alan sayısal ise ozaman direk getInt fonksiyonunu kullanmamız gerek.

getWord
Sadece A-Z (küçük-büyük farketmez) arası harflerden oluşan veri getirir. Unutmayalım ki İngiliz alfabesi geçerlidir. Kullanımı üstteki getInt gibidir.

getCmd
getWord'e ek olarak 0-9 arası sayılar ve .-_ (nokta, tire, alt-tire) karakterlerini de getirir. Kullanımı üstteki getInt gibidir.

getString
Kötü HTML tagları filtrelenmiş veri getirir. Kullanımı üstteki getInt gibidir.

getVar
Filtrelenmemiş veri getirir, saf PHP'den tek avantajı $_POST veya $_GET gibi kotrolleri yapmıyoruz. Bu fonksiyon, dizi türünde veri çekme haricinde, kesinlikle kullanılmamalıdır. Kullanımı üstteki getInt gibidir.

setVar
Veriyi set yani aktifleştirmemizi sağlar. İstersek getInt fonksiyonunda olduğu gibi, post get gibi yolunu da belirtebiliriz.
JRequest::setVar('id', 5);

JRequest sınıfında 4-5 fonksiyon daha var ama onlar pek kullanılmıyor. Bugünlük de bukadar, hoşçakalın.

Denis DULİÇİDenis DULİÇİ
Web dünyasına 2006 yılında SMF forumu ile girdi. 2007'de Joomla ile tanışıp bir daha bırakmadı. Aldığı eğitim gereği işi gücü kod yazıp yönetmek oldu. Joomla dünyasına AceSEF başta olmak üzere AceSearch, AceACL, AcePolls gibi bileşenleri kazandırdı. Tabii ki bunları tek başına değil, 2009 yılında ortağı ile birlikte kurmuş olduğu JoomAce Ltd. Şti. adlı şirketindeki ekibiyle birlikte gerçekleştirdi. Uzmanlık alanı PHP & MySQL ama iş ve eğitimi gereği XML, JavaScript, JSON, Java, C# gibi programlama dillerine de hakim. Android hastası olup son teknolojileri sürekli takip eder. Arnavutluk vatandaşı, Marmara Üniversitesi Bilgisayar Öğretmenliği mezunu, evli ve bir kız çocuğu babasıdır.

yazarın diğer yazıları >>

İSTATİSTİKLER

Bugün20
Dün52
Bu ay471
Bugüne kadar2476609