• 02-11-2008, 18:47:23
    #1
    Bu makaleyi okumadan once Nesne yonelimli(Object Oriented) PHP makalemi okumanızı tavsiye ederim.
    PHP'de Sınıflar(Classes) DERS 1


    PHP
    'de bir sınıf oluştururken class anahtar sozcüğü kullanılır.
     class ClassAdi{
    }
    Sınıfların kullanışlı olmaları için nitelikler(değerler) ve işlemler(fonksiyonlar) kullanılır.
    Sınıf içinde Nitelikler var komutu ile kullanılır.
    class ClassAdi{
    var $nitelik1;
    var $nitelik;
    }
    İşlemlerimizi sınıflar içinde fonksiyonlar tanımlayarak oluşturabiliriz.Aşağıdaki ornekte hiç bir işlem yoktur.
    Yukarıda ki kodumuzda ClassAdi isimli bir sınıfımız bulunmakta.
    Bu sınıfın içinde Fonksiyon1 fonksiyonu hiç değişken almazken, Fonksiyon2 fonksiyonu iki tane değişken almıştır.
     class ClassAdi{
    function Fonksiyon1(){
    }
     function Fonksiyon2($degisken1,$degisken2){
    }
    }
    Bir Sınıf çağırıldığında ilk olarak eğer aynı isimde bir fonksiyon varsa o fonksiyonu çalıştırır.
    class Deneme{
    function Deneme(){
    echo 'Deneme sınıfını çağırdığın için aynı isimde bulunan Deneme fonksiyonunu çalıştırdın.';
    }
    }
    Bir sınıf tanımladıktan sonra, üzerinde çalışabilmek sınıfın ornegini(nesne) oluşturmak gerekir.
    Orneği oluşturabilmek için new komutunu kullanırız.
    $a = new Deneme();
    Çıktısı şu şekilde olacaktır;
    • Deneme sınıfını çağırdığın için aynı isimde bulunan Deneme fonksiyonunu çalıştırdın.
    Bu ornegimizi fonksiyona degisken atayarak gosterecek olursak;
    class Deneme{
    function Deneme($ornek){
    echo 'Deneme sınıfında ki Deneme fonksiyonun <strong>$ornek</strong> degiskeni =  '.$ornek;
    }
    }
    Şimdi sınıfımızı çalıştıralım.
    $a = new Deneme('TEST');
    Çıktımız şu şekilde olacaktır;
    • Deneme sınıfında ki Deneme fonksiyonun $ornek degiskeni = TEST
    İlk dersimizi burada bitiriyorum.
    Sonra ki dersimizde Sınıfları niteliklerle ve fonksiyonlarla nasıl kullanacağımızı anlatacağım..

    < PHP 5.x.x >

    Kaynak: PHP’de Sınıflar(Classes) DERS 1
  • 02-11-2008, 22:49:05
    #2
    kocaman bir rep hak ettin Caddeciyiz, kursta bunlara daha gelmedik be ya

    anlatım için tşk.
  • 02-11-2008, 23:20:34
    #3
    Güzel bir anlatım olmuş, eline sağlık hoca
  • 03-11-2008, 00:12:13
    #4
    Üyeliği durduruldu
    teşekkürler güzel makale olmuş..
  • 03-11-2008, 00:32:17
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    çok basit ve anlaşılan bir yazı değil.

    Mesala

    Alıntı
    Bir Sınıf çağırıldığında ilk olarak aynı isimde ki fonksiyonu çalıştırır.
    demişsin bunu herkes yanlış anlayacaktır. buna __construct yani yapılandırıcı denir bunu kişi eğer sınıfı başlatırken belli tanımlamalar yapmak isterse kullanır istemesse ek olarak bir metot yazıp öyle tanımlattırır. Dolayısıyla senin kurduğun cümle bi çok insan tarafından yanlış anlaşılmalara neden olabilir veya akıllarında bir sınıf tanımladım şimdide aynı isimde bir metot tanımlamam gerekiyor gibi bir düşünce oluşabilir.

    Sınıfları örnek vermek gerekirse bir insan hayatı gibi düşünebilirsiniz.

    İnsanlar doğarlar, yaşarlar ve ölürler.

    O zaman sınıflar ilk başta doğarlar sonrasında ise yaşama evresine girerler. Nedir bu yaşama evreleri düşünürsek bir çok şey olabilir örneğin, yemek yeme, yürümek, uyumak, yatmak,kalkmak... vb şeyler de sınıfın metotları olarak düşünebilirsiniz. Neydi nesneler sürekli gelişime açık kodlamalardı. O halde az önceki saydığım özelliklere daha bir çok özellik eklenebilir ve sınıf içeriği genişletilebilir. Tüm herşey yapıldıktan sonra ise sınıf son aşamasına gelir ve sınıfı sonlandırırız yani ölür....

    bir örnek:
    <?php
    # Bir Ev Sınıfımız olsun bunu yaratalım sonrasında
    # Ev için neler gerekiyor onları ekleyelim
    # En sonunda da bitirelim..
    # Giriş - gelişme - sonuç gibi düşünebilirsiniz.
    
    # Ev Nesnemiz yaratıldı.
    class Ev
    {
        # Şimdi bize ev yapmak için ne lazım ? Önce Arsa o halde arsa özelliğimizi
        # sınıfımızda tanımlayalım...
        
        public function arsaAl()
        {
            echo 'Arsa alındı.<br>';
        }
        
        # Evet arsayı aldık peki ya şimdi ? bir proje lazım değil mi ? O halde proje
        # özelliğini ekleyelim.. ve sınıfımızı geliştirmeye devam edelim...
        
        public function projeCiz()
        {
            echo 'Proje cizildi.<br>';
        }
        
        # Şimdi ise geriye evi yapmak için işçi almaya geldi..
        
        public function isciAl()
        {
            echo 'İşçiler bulundu.<br>';
        }
        
        # İşcilerimizi de tuttuk tuğla çimento kum demir gibi ev yapımı için gerekli
        # malzemeleri almaya sıra geldi..
        
        public function malzemeAl()
        {
            echo 'Ev yapımı için gerekli malzemeler alındı. Tuğla,Çimento,Demir vb.<br>';
        }
        
        # Şimdi sıra geldi evin yapılmasına...
        
        public function evYap()
        {
            echo 'İşçiler, Tuğla, Çimento ve Demir vb. gibi malzemeleri kullanarak binayı yaptılar<br>';
        }
        
        # Evet artık binamız hazır hale geldiğine göre içine geçip oturabiliriz...
        # Gördüğünüz gibi sınıfa daha bir çok yeni özellik ( metot ) ekleyebiliriz..
        
        public function evBitti()
        {
            echo 'Evinizin yapımı tamamlandı. Güle güle oturunuz..';
        }
    }
    
    # Ev nesnemizi yaratalım.
    $ev = new Ev;
    
    # Ev yapımı için arsa alalım
    $ev->arsaAl();
    
    # Projemizi çizelim
    $ev->projeCiz();
    
    # Proje hazır olduğuna göre ev yaptırmak için işçi bulalım
    $ev->isciAl();
    
    # İşçiler de alındı şimdi de malzemeleri alalım
    $ev->malzemeAl();
    
    # Herşey alındığına göre evimizi yapalım..
    $ev->evYap();
    
    # Evimizi bitirdiğimize göre artık içine geçip oturalım..
    $ev->evBitti();
    ?>
    evet örneğimizi de alıp çalıştırırsanız bir sınıfın ( nesnenin ) tüm değil ama hemen hemen hepsini yaptık ev yapımı için tüm materyalleri topladıktan sonra evimizi yapıp inşa ettik ve içine oturduk.

    Peki bu sınıf daha da genişletilemez mi ? Pek tabi ki evet genişletilebilir mesala asansör ekleyebilirsiniz, doğal gaz çektirebilirsiniz, tüm pencereleri pimapen yaptırabilirsiniz .... gibi genişletebilirsiniz...

    Sanırım yeter bu kadar... buda bir makale oldu galiba neyse sınıfı gerçek nesne olarak düşünün ve o nesne ile neler yapılabilir planını yaptıktan sonra diğer işlemleri yapar ve sonuçlandırırsınız...

    www.ysfkc.com
  • 03-11-2008, 00:44:29
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Eskiden PHP class'larında deconstructor yoktu, PHP5 ile birlikte yanılmıyorsam gelebildi

    PHP OOP ile gelmiş bir dil değil, eski versiyolarında OOP çakmaydı. Zamanla syntax'ı adam gibi bir yapıya kavuştu.
  • 03-11-2008, 00:53:27
    #7
    @dmntnk
    Evet, sen yazdıktan sonra farkettim yanlış anlaşılabilir bir cümle olmuş.Malûm yine uykusuz bi zamanımda yazmıştım düzelttim şimdi.

    Ev yapımı orneğini vermişsin ama sonra ki derslerde zaten o tür ornekler olacaktı
    Eminim insanlarımız basit olmayan ve anlaşılan kendi orneklerini gosterebileceğin makalelerinden yararlanmak ister.

    @gentleRain
    Evet __construct() ve __destruct() PHP 5 ile geldi.
  • 03-11-2008, 14:53:48
    #8
    Alıntı
    Eminim insanlarımız basit olmayan ve anlaşılan kendi orneklerini gosterebileceğin makalelerinden yararlanmak ister.
    yok böyle arada gördüğüm yazılara eleştiriler yapmak daha iyi oluyor..