Ders 3: Joomla Framework'unu tanıyalım - JFactory

Bu habere oy verin
(0 oy verilmiş)

En son yazımızı bitirirken birkaç gün sonra görüşürüz demişiz ama iş, güç, hastalık derken 1 aydan fazla geçmiş. Bir daha olmaz diyeceğim ama bizim işte ne olacağı belli olmuyor malesef.

Herneyse, bugünkü derse dönelim. Bugün nihayet kod göreceğiz. Eklenti yazmadan önce eklenti yazacağımız sistemi tanımamız gerek. Bu yüzden birkaç dersi Joomla Framework'u tanımaya ayıracağız inşAllah. Bugün, Joomla'nın geliştiricilere sağladığı kolaylıkları görerek neden tercih edildiğini daha iyi anlayacağız. Dersimiz biraz uzun olacak, onu da söyleyelim.

Bu arada, derslerimizde Joomla 2.5'in kod yapısını kullanacağız, onu da belirtmiş olalım.

Joomla Framework'un Mimarisi

Her Joomla'cının bildiği bir şey var; Joomla MVC mimarisini kullanır. Aslında, bir geliştirici gözüyle Framework olarak tanımladığımız Joomla, MVC kullanmaz. 

MVC mimarisi Joomla'nın eklentileri tarafından kullanılır. Joomla ise OOP (Object Oriented Programming) yani Nesneye Yönelik Programlama mimarisini ve ondan üretilen Design Patters yani Tasarım Şablonları'nı kullanır. Tasarım derken yanlış anlamayın, grafik değil sık rastlanan sorunlara karşı yaygın olarak kabul edilmiş çözümlerden bahsediyoruz. 


Joomla Framework design patterns
 Kanaatimce PHP bilen birinin mutlaka Tasarım Şablonları'nı öğrenmesi gerek, onları öğrendikten sonra göreceksiniz ki kod yazmak hikaye yazmak kadar kolay olacaktır. Şu makale Tasarım Şablonları'nın tam olarak ne olduğunu güzel bir şekilde anlatır. İngiliceniz varsa bu sitede Tasarım Şablonları detaylı ve mükemmel bir şekilde anlatılmaktadır. Son olarak şunu söyleyelim, Tasarım Şablonları sadece Joomla veya PHP'de değil Java, C# vs gibi dillerde de kullanılır.

JFactory

Framework'lerin sınıf isimlendirmede kullandığı bir yöntem var; Framework'un adının ilk 1-2 harfi her sınıf isminin önüne eklenir. Örneğin Zend için ZFactory veya Joomla için JFactory. 

JFactory, Joomla'nın en çok kullanılan sınıfıdır. Şu makaleden de anlayacağınız gibi, Factory Tasarım Şablonu ile amaç, uygun nesneleri uygulamaya döndürmektir. Şablonun temel işlevi, adından da belli olduğu gibi sınıfların örneklerini üretmektir. Daha da açacak olursak, aslında JFactory soyut (abstract) bir sınıftır ve amacı Joomla'nın diğer sınıflarını çağırıp kullanmamızda yardımcı olmaktır. 

Artık biraz kod görmenin vakti geldi, JFactory sınıfının içinde en çok kulllanılan fonksiyonlarını tanıyalım. 

getConfig

Joomla'nın Genel Yapılandırmasını (Configuration) nesne olarak döndürür.

$ayarlar = JFactory::getConfig();
$sef_durumu = $ayarlar->get('sef');
 
$ayarlar->set('sef', 1);

Yapılandırma nesnesinin get ve set adında 2 tane fonksiyonu var. get fonksiyonu ayar getirir, set ise ayarı değiştir. sef diye gönderdiğimiz kelime ise configuration.php dosyasındaki ayarın karşılığıdır.

getUser

Kullanıcını profilini nesene olarak döndürür. Aşağıdaki gibi ID göndermezsek o anda giriş yapmış kullanıcının profilini almış oluruz, detaylı bilgi için tıklayın.

$kullanici = JFactory::getUser();
$k_adi = $kullanici->get('username');
 
$kullanici->set('email', 'ahmet[at]mehmet.com');

Yapılandırma nesnesi gibi Kullanıcı nesnesinin de get ve set adında 2 tane fonksiyonu var.

getDocument

Betiğin yani yüklenmiş HTML sayfasının nesnesini döndürür. Bu nesnenin en çok kullanılan fonksiyonları şunlar: getMetadata, setMetadata, getBuffer, setBuffer, addScriptaddStyleSheet.

getDbo

Veritabanı nesnesini döndürür. Herhangi bir MySQL bağlantısı vs gerektirmez, direk sorguyu gönderip çalıştırmamız yeterlidir.

$veritabani = JFactory::getDbo();
$veritabani->setQuery('SELECT username FROM #__users WHERE id = 62');
$kullanici_adi = $veritabani->loadResult();

Veritabanın önekini girmemize gerek yok, tablonun önünde #__ yazdığımızda Joomla kendisi düzeltecektir orayı. Üstteki sorguda loadResult fonksiyonunu kullanarak tek bir alanı getirdik. Bütün bir satırı veya birden fazla satırı dizi veya nesne şekilde getirme fonksiyonlarını şu sayfada bulabilirsiniz, ileride veritabanı nesnesini ayrı bir ders olarak işleyeceğiz inşAllah. 

JFactory sınıfının içinde birkaç fonksiyon daha var ama en çok kullanılan bunlar. Ders biraz uzun oldu ama daha kısası da anlaşılmaz olurdu. Bir sonraki derste görüşmek dileğiyle 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ün27
Dün89
Bu ay3115
Bugüne kadar2452506