Geliştirilebilir PHP Uygulamaları Yazmak – 1


Selamlar

Geliştirilebilir PHP uygulamaları dedigimizde buyuk sistemlerde ornegin CMS’ler desek yeterli olabilir sanirim. Yazdiginiz CMS’lere eklenti yazabilmemizdir. Tabii kaynak kodu acip sifirdan tekrar orayi editlemek yerine eklenti destegi verip istediginiz zaman aktiflestirip istediginiz zaman deaktif edebileceginiz bir sistem daha mantikli bence.

Bu sayede surekli 1 dosya ile ugrasmak zorunda kalmaz, kaynak dosyaniza dokunmak zorunda kalmazsiniz. Ama o kaynak dosyanizdaki kodlariniza islevsellik katabilirsiniz.

Kanca demiştik nedir bu kanca?

Kanca dediğimiz şey, bir uygulama calistirdiniz diyelim PHP’yi falan unutun bir uygulama calistirdiniz. Istediginiz bir zamanda bu uygulamada ek bir islevin calismasini istiyorsunuz. Kancalar bunu saglar, buna izin verir.

Ornegin bir uygulamadaki icerigi degistirmek isteyebilirsiniz. Kancalar bunu kolaylastirir. Bu sistemi kullanan buyuk CMS’lerden birisi (WordPress populer zaten) kanca dedigimiz sey hook olayi bu arada.

Kanca olayina wordpress uzerinden ornek verecek olursak

add_action(‘admin_menu’, ‘ekle_bunu’);

seklindedir. buradaki kural add_action ile bir hareket, bir eylem bildiriyoruz. admin_menu ise sectigimiz kancayi gosterecek olandir. Neyi gosterecegiz tema_menu

add_action ve admin_menu bizim islevimizi kolaylastiracak olan standart yapidir. Kullaniciya ekle bunu dedigimiz yer ise bizim olusturdugumuz eklentinin adidir. Fazla uzatmayayim

Temel kavramlari gorelim bu makalede. Tabii 3 makale surecek bu yazi. Sizi sinirlamayalim siz kendi sisteminize neler getirirsiniz kimbilir :)

Kancaların çalışması – Kurallarına bir bakalım

$eventler_aks burada kayitli olaylar ve ilgili fonksiyonlari yapacagiz

Ornekle gorecegiz.

$eventler_aks = array();

kanca_eyl() islevi, tek bir arguman alir. Yani olayin adi olarak. Fonksiyonumuza goz atarsak

function kanca_eyl($eyl)
{
    global $eventler_aks;

    if(isset($eventler_aks[$eyl]))
    {
        foreach($eventler_aks[$eyl] as $fonk)
        {
            if(!function_exists($fonk)) {
                die('Tanimlanmamis fonksiyon: '.$fonk);
            }
                call_user_func($fonk, $args);
            }
    }

}

Gelelim kayit_aks() fonksiyonuna. Bu fonksiyon iki argüman kabul eder; İlk kısma olayı ikinci kısma ismi kabul eder. Bu islevi eklenti gelistiricisi kullanir.

function kayit_aks($eyl, $fonk)
{
    global $eventler_aks;
    $eventler_aks[$eyl][] = $fonk;
}

Kanca icinde kanca

Bide kanca harekeri var diyelim. Bu hareketi baska bir kanca ile destekleme isi var. Ona bakalim isterseniz.

Ornek bir CMS gelistirdigimizin varsayalim. Bir sayfanin icerigi goruntuleniyor, onlara birkac secenek sunmak gerekiyo. Bu CMS, icerigin goruntulenmesi islevine sahip. Ve bu yollari sunacagiz. Yapmamiz gereken sadece kanca eklemektir şu şekilde:

function icerigi_goster($icerik) {
    echo $icerigi_goster;
    kanca_eyl('icerik_goruntule');
}

İcerik goruntulendikten sonra calisan bir ozellik katalim. Sadece icerigi goruntuleyince calissin. CMS’nizde bir e-mail gonderilsin istiyorsunuz. Ornegin her yazdiginiz icerikten sonra bir e-posta ya da sayfa goruntulenmesinden sonra bir e-posta alacaksiniz. Bu fonksiyon onu yazar ve kaydeder.

function mail_yolla() {
    mail('ali@ornek.com', 'Sayfa gorunumu', 'Bu bizim bir ornek postamizdir');
}

kayit_aks('icerigi_goruntule','mail_yolla');

Ve çalıştı dimi?

Okudugunuz icin tesekkur ederim :)

2. bolumde gorusuruz :)

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter picture

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s