• 18-12-2007, 19:01:48
    #1
    Üyeliği durduruldu
    Ufak bir anlatım yapabilecek var mı? Learning PHP and MySQL adlı kitaptan okudum ama pek anladığımı söyleyemeyeceğim
  • 18-12-2007, 19:11:26
    #2
    mutasyon.net * | * Teknoloji
  • 19-12-2007, 00:02:02
    #3
    Eskiden başka 1 foruma yazmıştım. belki buraya da yazmışımdır

    UnderTaker adlı üyeden alıntı: mesajı görüntüle
    PHP ve SINIFLAR

    Öncelikle hepinize selam php sever arkadaşlar.
    Sizlere php'de sınıf (class) kullanımını bildiğim kadarıyla anlatmaya çalışacağım.
    -----

    Sınıf kullanmanın amacı:
    Büyük projelerde kodlama işi aşırı zaman gerektirdiği için genelde görev bölümü yaparak tamamlanır. Ancak bu görev bölümü bazı olumsuzlukları da yanında getirmektedir. Çünkü her yiğidin yoğurt yemesi farklıdır. Yani görev bölümü yapıldığınde kendi kodunu yazan her bireyin kodlarını bir araya topladığınızda ortaya farklı desenlerde bir bütün çıkmaktadır. Ayrıca eğer bir kişi yaptığı işim yarım bırakırsa onun görevini üstlenecek ve kaldığı yerden devam edecek kişinin devraldığı kısmı anlaması büyük ihtimalle biraz zor olacaktır. İşte sınıf kullanımının amacı bu karışıklığı biraz da olsun ortadan kaldırmaktadır. Sınıf kullanımı "modüler" programcılık olarak tanımalanabilir. Yani her iş için bir modül yazılması gibi. Örneğin ekrana yazdırmak için kullandığınız "echo" komutu birebir olmasada buna güzel bir örnektir. "echo" fonkisyonunu php geliştiricileri tarafından yapılmış ve ekrana sizin verdiğiniz içeriği yazdırmaya yaramaktadır. Her kim yazdıysa güzel bir fonksiyon yazmış ve artık ekrana birşeyler yazdırmak istediğinizde bu fonksiyonu kullanmanız yani eskiden yapılan bir temel üstüne kendi işinizi inşa etmeniz yetecektir. İşte sınıf kullanımının amacı budur. Belirli bir görevi yapmak için yazılan ve sonradan herkesin kullanmasına yönelik yazılan kod bütünü.
    Eğer sizde güzel bir sınıf yaparsanız bunu bizimle paylaşmaktan çekinmezsiniz sanırım

    Şimdi işin hikaye kısmını bitirip biraz kodlama kısmına girelim ve ilk sınıfımızı yazalım.
    <?php
    
    ///sinif.php//
        class sinifim{
        
        var $yazi;
        
        };
    ?>
    Bu kodu "sinif.php" adında kaydedip aşağıdaki uygulamamızda kullanabilirsiniz

    Evet ilk sınıfımızı oluşturmuş bulunuyoruz. Pekde zor olmadı gibi şimdi burada dikkat edilecek noktalara dikkat edelim
    -Öncelikle sınıf ismine bakalım "sinifim" bizim ilk sınıfımızın adı ve başında php değişkenlerinin başında bulunan "$" işareti yok.
    -Sınıfımıza ait değişkenleri tanımlarken ("yazi" değişkeni) başına JavaScript'te olduğu gibi "var" yazıyoruz. Tabii bu Türkçe varolmak anlamında değil değişkenin gavurcası "variable" 'ın kısaltması Değişkenimizin başına var yazdıktan sonra klasik "$" işaretmizi de başına koyuyoruz.

    NESNELER:
    Nesneler sınıfların parçalarıdır ve biz sınıflar değil nesneler üstünde işlem yaparız. Buna klasik olarak araba örneğini verebiliriz. Araba dediğimizde genelde aklımıza 4 tekeri, 4 kapısı, camları vs olan bir araç aklımıza geliyor. İşte araba bizim sınıfımız olmakta. Nesne ise Serçe, Şahin, Kartal gibi modellere karşılık düşmektedir. Nesnelerin yapı olarak özellikleri aynı olmasına rağmen içerikleri birbirinden farklı olabilmektedir.

    NESNELER ve DEĞİŞKENLERİ
    Şimdi bir nesne yaratıp ilk sınıf uygulamamızı gerçekleştirelim. Eğer yukardaki sınıfımızı "sinif.php" adında kaydettiyseniz aşağıdaki kodu da "kullan.php" adında kaydedip birikte kullanabilirsiniz.
    <?php
    ///kullan.php//
    
    include "sinif.php";        
    $isim = new sinifim();    // "isim" adında bir nesne oluşturuyoruz.
    $soyisim = new sinifim();    // "soyisim" adında başka bir nesne daha oluşturduk.
    
    $isim->yazi="under";    // "isim" adlı nesenmizin "yazi" aldı değişkenine atama yaptık
    $soyisim->yazi="taker";    // üstteki işlermi "soyisim" nesnemize yaptık
    
    echo $isim->yazi;        // "isim" nesnemizin "yazi" değişkenini ekrana bastık
    echo $soyisim->yazi;    // yine üstteki işlemi "soyisim" nesnemize uyguladık
    ?>
    Evet ilk sınıfımız yaptığımız yetmedi birde ilk nesnelerimiz oluşturup bunları kullandık

    Şimdi yine dikkat edilecek noktalara dikkat edelim:
    -Burada değişik olarak gördüğümüz "new" işlemi var. Adından da anlıyacağımız gibi bu işlem bize sağındaki türden bir değişken yapıyor ve bunu solundaki değişkene atıyor. Böylece "sinifim" türünde birer nesne yapıp bunları "isim" ve "soyisim" isimli değişkenlerimize atıyoruz.
    -İkinci olarak "->" atama operatörüne bakalım. Bu operatör bize sağındaki nesnenin solundaki değişkenini veriyor. Yani "$isim->yazi" bize "$isim" değişkenimize ait "yazi" değişkenini veriyor. Sınıf içinde tanımlarken başına "$" koymamıza rağmen "$isim->yazi" gibi erişimlerde "yazi" değişkenimizn başına "$" işareti koymuyoruz. (şimdi denedimde koyunca da çalışıyormuş ama ben alışmışım koymam kardeşim :P )
    -"->" bu operatör bize bir değişken veriyordu. Biz bu değişkeni normal bir değişken gibi kullanıp atama yapabilir veya "echo" ile ekrena bastırma gibi klasik işlemleri yapabiliriz.

    NESNELER ve FONKSİYONLARI
    Yukardaki örneğimizde sınıfımızda sadece bir değişken vardı ancak bu yapı çok basit ve kullanımı gereksiz görünebilir. Şimdi sınıfımıza birkaç fonksiyon ekliyelim ve kullanımına bakalım.


    <?php
    ///sinif2.php//
    
        class sinifim2{
        
        var $yazi;
    
            function ver(){
            return ($this->yazi);
            }
    
            function al($girdi){
            $this->yazi=$girdi;
            return;
            }
        };
    
    ?>
    Evet sınıfımızı biraz daha geliştirdik ve çok basit iki fonksiyon ekledik. Fonksiyon isimlerini sınıf'ın içinden bakarcasına yazdım yani "ver" fonksiyonu sınıf dışına bilgi veriyor ve "al" fonksiyonu dışardan bilgi alıyor. Bu "kullan2.php" sayfasında biraz karışıklık yaratabilir Şimdi "kullan2.php" sayfamızı yapalım.

    <?php
    ///kullan2.php//
    
    include "sinif2.php";        
    $isim = new sinifim2();    // "isim" adında bir nesne oluşturuyoruz.
    $soyisim = new sinifim2();    // "soyisim" adında başka bir nesne daha oluşturduk.
    
    $isim->al("under");
    $soyisim->al("taker");
    
    echo $isim->ver();        // "isim" nesnemizin "yazi" değişkenini ekrana bastık
    echo $soyisim->ver();    // yine üstteki işlemi "soyisim" nesnemize uyguladık
    ?>
    Evet "kullan2.php" sayfamızı hazırladık. Çıktıları aynı olacak bu sayfaların arasında pek fark yok sadece nesnemizde fonksiyon kullanmayı görmüş olduk. Ancak atama ve değer alma işlemleri bu tip fonksiyonlar ile daha rahat olacaktır ve dışarıdan alınacak bilginin veya verilecek bilginin üstünde işlem yapacaksanız bu yolu kullanmanız işinizi çok daha kolaylaştıracaktır.


    Umarım yazdıklarımın bir yararı olur.
    Yazım hataları felan olabilir fazla takılmayın.
    Ayrıca yanlış birşey yazdıysam şimdiden özür dilerim
    Hepinize Kolay Gelsin...

    yaZan : UndeRTakeR /// eMeğe saygı


    ALINTI DEĞİLDİR