• 17-07-2010, 22:47:16
    #19
    Eposta Aktivasyonu Gerekmekte
    RQ7 adlı üyeden alıntı: mesajı görüntüle
    merhabalar, ben java ile object oriented yazıyorum ancak PHPde function ile yazmanın OOP ile farkını tam olarak kavrayamadım (mal olabilirim) çünkü phpde function ile yazmak daha rahat olmuyor mu. Belkide bilmediğimden olabilir.
    • Bi kere sınıf yazınca fonksiyonlar bir arada derli toplu olur.
    • Herhangi bir yapacağın işte,fonksiyonları birlikte komplike kullanmak istiyorsan, sınıf ile daha hiyeraşik bir düzene girer.
    • Ve bence en önemlisi ise fonksiyonlar arası değişken ortaklığı.Biraz açmak gerekirse, bir fonksiyondan return yöntemi ile bir değer döndürebilirsin.Ama $this anahtarı sayesinde, sınıf içindeki fonksiyonlar arasında returna gerek kalmadan bir çok değeri ortak kullanabilirsin.
    • Yazılmış bir sınıfa, ek yapabilir,onun içindeki değişkenlere tekrar erişim sağlayabilir, onları düzenleyebilirsin.
    • Bir sınıfta birden çok oturum başlata biliyorsun.(new anahtarı ile başlatılabiliyor.Tabi ben oturum dedim de adı başka bişey olabilir.)

    Kabaca böyle tabi ki ama bazı erişim kısıtlamaları var.Onları kullandığımız zaman her yerden sınıf içi değişkenlere erişilinilemeyebiliniyor.

    Eksiğim ya da yanlışım varsa affola
  • 18-07-2010, 00:01:36
    #20
    class_exists bir sınıfın varolup olmadıgana bakar yani (Sınıf Yaratılmışmı yaratılmamışmı)

    aşşağıda boş bir sınıf yaratıp kontrol ettirelim

    <?
    class Sinifim {
        
    }
    echo (class_exists(Sinifim)?"Yaratılmış":"yaratılmamış");
    ?>
  • 21-07-2010, 22:34:31
    #21
    Vbulletin 3.8.4 ve üzeri 4.x sürümler için login olmak örnek uygulama

    <?
    class VB_3_8_4 {
        public  $Site_Login = "login.php?do=login";// Dokunmuyoruz
        public  $Site_Adres = "http://www.siteadi.com/";//Site Adresini Aynen Böyle Yazıyoruz örnek https://www.r10.net/
        public  $Uye_Adi    = "kullanıcıadı";//Kullanıcı Adımız
        public  $Sifre      = "sifre";//Şifremiz
        public  $Onbellek;  // Curl_Exec()'den Dönen Degerleri 1 kereliğine burada tuttum
        
        
        
    //CURL AYARLARI BASLANGIÇ
        public  $Ayarlar    = array(
                CURLOPT_FOLLOWLOCATION    =>1,
                CURLOPT_RETURNTRANSFER    =>1,
                CURLOPT_HEADER            =>0,
                CURLOPT_COOKIEJAR         =>"Kayit.txt",
                CURLOPT_COOKIEFILE        =>"Kayit.txt",
                CURLOPT_USERAGENT         =>"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
                );
    //CURL AYARLARI BİTİŞ 
    
    
    
    
        public function __construct() {//Sınıf çağrıldıgında Yapacağı işlemler
                $ch = curl_init();// Yeni Bir Oturum Açtık
            curl_setopt_array($ch,$this->Ayarlar);//Curl Ayarlarımızı Aldık bu ayarlarda oturum acacak
            curl_setopt($ch,CURLOPT_URL,$this->Site_Adres.$this->Site_Login);//Loign Adresimizi Çektik
                $this->Onbellek = curl_exec($ch);// ve login olmadan önce önbellek diye bir degiskene atadık gereksiz zannetmeyin :)
                preg_match('/securitytoken" value="(.*?)"/',$this->Onbellek,$securitytoken);//burada forumun bize verdiği benzersiz adresi aldık
            curl_setopt($ch , CURLOPT_URL, $this->Site_Adres.$this->Site_Login);//tekrar login adresine gittik
            curl_setopt($ch , CURLOPT_POST , TRUE);//Post atacağaımızı belirttik
            curl_setopt($ch , CURLOPT_POSTFIELDS, 'cookieuser=1&vb_login_username='.$this->Uye_Adi.'&vb_login_password='.$this->Sifre.'&s=&securitytoken='.$securitytoken[1].'&do=login');//Post Degerlerimizi verdik ve postladık
            curl_setopt($ch , CURLOPT_URL,"http://site.com/");//giriş yaptıktan sonra en son gideceği adres
                echo $exe = curl_exec($ch);//ekrana bastırdık
            curl_close($ch);//ve oturumu kapattık
        }        
    }
    //Örnek Kullanım
    $new = new VB_3_8_4();
    ?>
  • 22-07-2010, 00:01:43
    #22
    Kimlik doğrulama veya yönetimden onay bekliyor.
    eline sağlık hocam teşekkürler..
  • 23-07-2010, 01:41:49
    #23
    merhaba arkadaşlar şimdi aklıma gelen bir fonksiyondan daha bahsedeyim zaman bumuşken __Autoload() bu fonksiyon projemize dahil ettiğimiz sınıfı otomatik olarak projemize include ediyor (dahil ediyor) hadi baslayalım

    bir projeye basladık ve bu projede sınıf isimlerini tek tek include etmek istemiyoruz ozaman __autoload() kullanıyoruz

    Kutuphane.php adında bir dosyamız var bu dosyanın içerisindede Kutuphane isminde bir sınıfımız var bu sınıfın içersindede kullanacağımız metod'lar var doğla olarak ve bu sınıfı şu sekilde otomatik olarak include ediyoruz

    
    
    <?
    function __autoload($classname){// fonksiyonu bu sekilde olusturuyoruz
        include($classname.".php");    //include edeceği dosya
    }
    
    $new = new Kutuphane();//burada sınıfımızı cağırdık ismi Kutuphane
    $new->Link_Kontrol_Et("http://www.phpogreniyorum.com");//burada ise site açıkmı kapalımı diye bir metod çağırıp kontrol ettirdik açıksa açık yazacak değilse kapalı yazacak :)
    ?>
    mantık:
    arkadaşlar __Autoload() nerelerde kullanılır ? örneğin bir dizin altında 20 tane dosya var bunların hepsi sizin sınıflarınızı içermekte bunları tek tek include etmek yerine sınıfı tanımladıgınızda o sınıfın oldugu dosyayı cağırıyor

    şimdi diyeceksinizki peki bu fonksiyon bukadar zekimi tabiki değil
    fonksiyon projede cağrılan sınıf adını alıyor ve onu include etmeye çalışıyor yani sınıfımızın ismi ne ise sınıfın bulundugu php dosyasıda aynı isimde olmak zorunda biraz karışık oldu ama cok basit bikaç kere deneyin anlayacaksınız
  • 31-07-2010, 22:51:31
    #24
    Üyeliği durduruldu
    oop için ufak bi fonksiyon...

    public function modulYukle($modul,$baglanti){
            include("modules/$modul.php");
            if(isset($baglanti)){
                return $this->{$modul} = new $modul($baglanti);
            }
            else
            {
                return $this->{$modul} = new $modul();
            }
        }
    *******************************************
    class x extends y{}
    şeklindeki extend sınıfları $y->x şekline getirir...

    Örnek...

    $portal = new site($baglanti);
    $portal->modulYukle('user',$baglanti);
    $portal->user->uyeGiris();
  • 31-07-2010, 23:33:45
    #25
    Üyeliği durduruldu
    Dostum Emeği Ödenemeyecek İnsanlardan Sadece Bir Kaçı İçerisindesin Teşekkür Ederim

    Paylaşımlarını Takip Ediyorum
  • 02-08-2010, 21:59:46
    #26
    Eposta Aktivasyonu Gerekmekte
    çok teşekkürler gerçekten güzel anlatımlar daha geniş vakit buldugumda iyice okuyacagım

    kolay gelsin arada videolu egitimler, ve saglam konuları fazla kafa karıştırmıyacak kodlar ile anlatırsan daha akılda kalıcı olur bence..yani sadece tek fonksiyonu anlatabilirsin digerlerini katmadan onu demek istedim.

    tekrar teşekkürler
  • 02-08-2010, 22:02:01
    #27
    özen göstereceğim teşekkürler videolu eğitime zamanım yok ama olursada yaparım inş