• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

Php ve OOP (Object Orient Programlama)

Konuyu Okuyan Kişiler (0)

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#1
anlatımlarımdaki yalnışlarımı düzelten olursa sevinirim en azından daha net bilgiye varmış olurum :) olumlu olumsuz yorumlarada açığım :)

öncelikle nesnel programlamada öğrenilmesi gerekenlerin başında gelen şey sınıf tanımlama ve çağırmadır :) bu gibi anlatımları bazı arkadaşlar kendi bloglarında yayınlamış :) bu yüzden bende başladığım yerden aktarmaya devam ediyorum



Public: Foknsiyona sınıf içinden ve sınıf dışından erişime izin verir.Ayrıca Kalıtım ile aktarılır.
Private: Bu erişim belirteci işaretlenen öğeye sadece sınıfın içinden erişilebileceği anlamına gelir.Ve bu öğeler kalıtım yoluyla aktarılmaz..
Protected:Bu erişim belirteci işaratelenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.
Extends:Eğer sınıfımız başka bir sınıfın alt sınıfı olacaksa extends anahtar sözcüğü ile aktarılır.


PHP:
1    //Public Örneği
2    class sinifim {
3     public function yazdir(){
4     echo "Merhaba Dünya";
5     }
6    }
7    //Örnek 1
8    /*$yeni_sinif = new sinifim();
9    $yeni_sinif->yazdir();*/
Gördüğünüz Gibi Fonksiyonumuza Dışarıdan Erişim Sağlayabiliyoruz...
şimdi private özelliğini kullanarak deneyelim


PHP:
1    //Private Örneği
2    class sinifim {
3     private  function yazdir(){
4     echo "Merhaba Dünya";
5     }
6    }
7    //Örnek 2
8    /*$yeni_sinif = new sinifim();
9    $yeni_sinif->yazdir();*/
Fatal error: Cannot redeclare class sinifim in Böyle Bir Hata Aldık yani dışarıdan Erişim Yok

Şimdide Protected özelliğine gecelim



PHP:
01    class sinifim {
02     protected   function yazdir(){
03     echo "Merhaba Dünya";
04     }
05    }
06    class alt_sinif extends sinifim {
07     public function alt_metod(){
08     $this->yazdir();
09     }
10    }
11     
12    //Örnek 3
13    /*$yeni_sinif = new alt_sinif();
14    $yeni_sinif ->alt_metod();*/
Burada Görüldüğü üzere Sadece Alt Sınıf ta kullanabiliyoruz ama gelen degeri ekrana basamıyoruz





Extends nedir
Extends bir sınıfı genişletme anlamına gelir yani 2 adet sınıfımız var ama 1 tanesine sonradan eklenti yapmak istiyoruz

kullanımı
PHP:
class sinif_2 Extends sinif_1{


}
buradaki su anlama geliyor sinif_2 sinif_1'in alt sınıfıdır ne işimize yarıyor
baska bir sınıfta iken direk ana sınıftaki metodları ve özelikleri kullanbiliyoruz yeni özellikler eklemiş oluyorz
alt sınıfı cağırdıgımızda ana sınıfada aktarım yapabiliriz detaylı örnek


PHP:
    class sinifim {
    var $deger;
    protected   function yazdir(){
     echo "Merhaba Dünya Ben Ana Sınıftan Geliyorum <br>";
     }
   }
   
   
   
   
   
   
   
    class alt_sinif extends sinifim {
    public function alt_metod()
    {
    $this->yazdir();
     }
     public function iceriden (){
         echo "Bende Alt Sınıftan Geliyorum";
     }
    }
                                      
  
    
    
//Örnek 4
$yeni_sinif = new alt_sinif();
//alt sınıfa bağlanarak üst sınıftaki methodu cağırdık
$yeni_sinif ->alt_metod();
//alt sınıfa bağlanarak içersindeki iceriden() methodunu cağırdık
$yeni_sinif->iceriden();


// Alt Sınıfı Çağırıyor ama üst sınıftaki özelliğe deger atıyoruz
$alt_siniftan_ana_sinifa_gonder = new alt_sinif();
$alt_siniftan_ana_sinifa_gonder->deger = "bakın burada ise alt sınıfı  çağırıyor ama üst sınıfın özelliğine atama yapıyoruz"
yani sınıfımızın herhangi bir sınıfa bağlı olacağını belirtir örnekteki gibi örnekte ne yaptık
sinifim isimli siniftan alt_sinifim isimli sınıfa yazdir() methodunu cektik
ve alt sınıfı çağırarak üst sınıftaki $deger özelliğine atama yaptık umarım anlaşılır olmuştur arkadaşlar
Kaynak







_______________________________________________________________





__construct
fonksiyonu arkadaşlar bir sınıf çağrıldıgında sınıftaki kod blogu işlemini yapmadan önce çalışmasını istediğimiz metod'dur
örnek eger kullanıcı ismi doğru ise işleme başlasın değil ise işlemi durdursun


PHP:
01    <?
02    class sinifim {
03     var $kullanici;
04     var $sifre;
05     public function __construct($user,$pass){//sınıf cağrıldıgında ilk çalışacak metod metodun çağrılmasına gerek yoktur default olarak çalışacaktır
06     
07     $username = "bytrislasis"; // Kullanıcı Adımız
08     $password =  "123456";       // şifremiz
09     
10     if (($username == $user)and($password==$pass)) { // Gelen kullanıcı Adı ve Şifre Bizim Belirlediğimize Eşitmi diye bakıyoruz
11     
12     $this->kullanici = $user; // Kullanıcı adı Eşit ise gelen degeri kullanıcı özelliğimize atıyoruz
13     $this->sifre = $pass;     //  şifre adı Eşit ise gelen degeri sifre özelliğimize atıyoruz
14     
15     }else {// gelen degerler eşit değilse
16     echo "Kullanıcı Adınız veya Şifreniz Yalnış<br>";
17     exit;//Fonksiyonumuzu Burada Durduruyoruz
18     }
19     
20     }
21     public  function yazdir (){
22     echo "Kullanıcı Adınız :".$this->kullanici."<br>";
23     echo "Adınıza Ait Şifre:".$this->sifre."<br>";
24     }
25    }
26     
27    $yeni = new sinifim("bytrislasis","123456");
28    $yeni->yazdir();//degerlerimiz doğru ise bu metod çalışacak değilse belirlediğimiz hata blogu gelecektir..
29    ?>
Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#2
arkadaşlar __destruct Fonksiyonu __construct Fonksiyonun tam tersine sınıfın çağrıldıgında yani başlangıçta değilde sınıftaki işlemler icra edildikten sonra yapılacak işlemi belirtir.. örnek aşşağıdadır..


PHP:
01    <?
02    class sinifim {
03     public  function yazdir (){
04     echo "Sınıf Başarıyla Başlatıldı<br>";
05     }
06     public function __destruct(){
07     echo "Sınıftan Cıkılmıştır...<br>";
08     }
09    }
10     
11    $yeni = new sinifim();
12    $yeni-> yazdir(); // dikkat ederseniz __destruct metodu kendiliğinden çalışmaktadır..
13    ?>
Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#3
Parent:: Deyimi
Kod yazarken ana sınıfların işlev ve değişkenlerini kullanmanız gerekebilir.
Türetilmiş sınıfınızı temiz tutmak veya ana sınıfın kodunu özelleştirmek istediğiniz durumlar buna birer örnektir.
ana sınıfın ismini kullanmak yerine, özel parent:: ismini kullanarak sınıfınızın extends yani alt sınıf bildiriminde belirtilen ana sınıfın ismine atıf yapabilirsiniz.
Böylelikle, ana sınıfın ismini birden fazla yerde kullanmamış olursunuz.
Kalıtsal ağacınızı gerçeklenimin ileri safhalarında değiştirmek ihtiyacı duyarsanız sınıfınızın sadece extends bildiriminde değişiklik yaparak bunu kolayca yapabilirsiniz.
Örnek Aşşağıdadır


PHP:
01    class sinifim {
02     public function Welcome (){
03     echo "Bytrislasis";
04     }
05    }
06    class alt_Sinifim extends sinifim  {
07     public function Welcome(){
08     echo "Hoşgeldin ";
09     parent::Welcome();
10     
11     }
12    }
13    $yeni = new alt_Sinifim();
14    $yeni->Welcome();
15    // çıktısı şu sekilde olacaktır (Hoşgeldin Bytrislasis)
arkadaşlar dikkat ederseniz bir istisna gibi işlem yaptık ve ana sınıftan Welcome() Metodunu Parent:: Fonksiyonu ile çağırdık diğer çağırma sekline bakalım

PHP:
01    class sinifim {
02     public function Welcome (){
03     echo "Bytrislasis";
04     }
05    }
06    class alt_Sinifim extends sinifim  {
07     public function Welcome(){
08     echo "Hoşgeldin ";
09     $sinifimdan_gelen = new sinifim();
10     $sinifimdan_gelen ->Welcome();
11     
12     }
13    }
14    $yeni = new alt_Sinifim();
15    $yeni->Welcome();
16    // çıktısı şu sekilde olacaktır (Hoşgeldin Bytrislasis)
burada suna dikkat edin

PHP:
1    $sinifimdan_gelen = new sinifim();
2     $sinifimdan_gelen ->Welcome();
alt sınıfımız içerisinde yeniden o sınıfı çağırdık $this deyimi ilede cağırabilirdik ama Parent:: işimizi kolaylaştırıyor ve ana sınıfımızda değişiklik yapmadan özel tutarak işlemimizi gercekleştiriyor...

Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#4
get_declared_classes fonksiyonu bize (array) yani dizi halinde tanımlı sınıf isimlerini verir bazı yerlerde işinize yarayacağını düşündüğüm için örnek eklemek istedim


PHP:
01    <?
02    class A {
03    }
04    class B {
05    }
06    class C {
07    }
08    class D {
09    }
10    print_r(array_reverse(get_declared_classes()));
11    ?>
dikkat ederseniz A,B,C,D isimlerinde boş sınıflar oluşturdum bu tanımlanan sınıflarıda gösterir print_r fonksiyonu ile cağırdıgımda

benim tanımladıgım sınıfları en sonda gösteriyor ama array_reverse() fonksiyonunu kullanarak tersine sıraladım ve sınıflarımı en üstte göstermesini istedim

çıktısı şu şekilde olacaktır.

PHP:
Array

(

[0] => D

[1] => C

[2] => B

[3] => A

[4] => SQLiteException

[5] => SQLiteUnbuffered

[6] => SQLiteResult

[7] => SQLiteDatabase

[8] => SoapHeader

[9] => SoapParam

[10] => SoapFault

[11] => SoapServer

[12] => SoapVar

[13] => SoapClient

[14] => PDORow

[15] => PDOStatement

[16] => PDO

[17] => PDOException

[18] => mysqli_stmt

[19] => mysqli_result

[20] => mysqli_warning

[21] => mysqli

[22] => mysqli_driver

[23] => mysqli_sql_exception

[24] => XMLWriter

[25] => XMLReader

[26] => SplObjectStorage

[27] => UnexpectedValueException

[28] => UnderflowException

[29] => RangeException

[30] => OverflowException

[31] => OutOfBoundsException

[32] => RuntimeException

[33] => OutOfRangeException

[34] => LengthException

[35] => InvalidArgumentException

[36] => DomainException

[37] => BadMethodCallException

[38] => BadFunctionCallException

[39] => LogicException

[40] => SimpleXMLIterator

[41] => SplTempFileObject

[42] => SplFileObject

[43] => RecursiveDirectoryIterator

[44] => DirectoryIterator

[45] => SplFileInfo

[46] => RecursiveArrayIterator

[47] => ArrayIterator

[48] => ArrayObject

[49] => EmptyIterator

[50] => RecursiveRegexIterator

[51] => RegexIterator

[52] => InfiniteIterator

[53] => AppendIterator

[54] => NoRewindIterator

[55] => RecursiveCachingIterator

[56] => CachingIterator

[57] => LimitIterator

[58] => ParentIterator

[59] => RecursiveFilterIterator

[60] => FilterIterator

[61] => IteratorIterator

[62] => RecursiveIteratorIterator

[63] => DOMXPath

[64] => DOMStringExtend

[65] => DOMProcessingInstruction

[66] => DOMEntityReference

[67] => DOMEntity

[68] => DOMNotation

[69] => DOMDocumentType

[70] => DOMCdataSection

[71] => DOMConfiguration

[72] => DOMLocator

[73] => DOMErrorHandler

[74] => DOMDomError

[75] => DOMUserDataHandler

[76] => DOMTypeinfo

[77] => DOMComment

[78] => DOMText

[79] => DOMElement

[80] => DOMAttr

[81] => DOMCharacterData

[82] => DOMNamedNodeMap

[83] => DOMNodeList

[84] => DOMDocument

[85] => DOMDocumentFragment

[86] => DOMNameSpaceNode

[87] => DOMNode

[88] => DOMImplementation

[89] => DOMImplementationSource

[90] => DOMImplementationList

[91] => DOMNameList

[92] => DOMStringList

[93] => DOMException

[94] => SimpleXMLElement

[95] => Directory

[96] => php_user_filter

[97] => __PHP_Incomplete_Class

[98] => LibXMLError

[99] => DateTimeZone

[100] => DateTime

[101] => ReflectionExtension

[102] => ReflectionProperty

[103] => ReflectionObject

[104] => ReflectionClass

[105] => ReflectionMethod

[106] => ReflectionParameter

[107] => ReflectionFunction

[108] => ReflectionFunctionAbstract

[109] => Reflection

[110] => ReflectionException

[111] => dotnet

[112] => com

[113] => variant

[114] => com_safearray_proxy

[115] => com_exception

[116] => COMPersistHelper

[117] => ErrorException

[118] => Exception

[119] => stdClass

)
Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#5
__autoload fonksiyonun bize sağladıgı güzellik class ismini tanıyarak o classın bulundugu dosyayı projemize include etmesidir Dikkat etmemiz gereken husus sınıfımız ismi ile bulundugu dosya ismi aynı olmalıdır örnek aşşağıdadır..


PHP:
1    <?php
2    class index {
3     var $isim = "ByTrislasis";
4     public function yaz (){
5     echo $this->isim;
6     }
7    }
8    ?>
bu sınıfımızı index.php adında kaydedin dikkat edin class ismimizde index


PHP:
01    <?php
02     
03    function __autoload($class_name){
04     include ($class_name.'.php');
05    }
06     
07    $yeni = new index();
08    $yeni ->yaz();
09     
10    ?>
bu kod bloğunuda herhangi bir isimle kaydedin dikkat ederseniz classın oldugu dosyayı include ettiğini göreceksiniz.

Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#6
arkadaşlar get_class_vars fonksiyonu ile sınıfımızda belirlediğimiz özellikleri özellik adı ve degeri halinde bir dizi'de görebiliriz... örnek aşşağıdadır dikkat ederseniz Private ve Protected olan özellikleri vermemektedir..

PHP:
01    <?
02    class sinifim {
03     var         $a = "bytrislasis";
04     public         $b = "phpogreniyorum.com";
05     private      $c = "Burayı Göstermez çünki Private";
06     protected     $d = "Burayıda Göstermez çünki Protected";
07     var         $e = "E özelliği";
08    }
09     
10     print_r(get_class_vars(sinifim));
11    ?>
Çıktısı Şu Şekilde Olacaktır.. Array ( [a] => bytrislasis => phpogreniyorum.com [e] => E özelliği )
Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#7
kimi yerde bazen verilerimizi veritabanında değilde herhangi bir dosyada saklayıp daha sonra cağırma gereksinimi duyarız örneğin

bir post işleminde kullanıcı adı ve şifreyi daha sonra baska bir yerde kullanmak için session cookie kullanabiliriz ama serialize ve unserialize degerleri byte olarak tutar ve daha sonra projemizin herhangi bir yerinde cağırmamız gerekebilir örnek
not : daha nerelerde kullanıldıgı hakkında bir bilgim yok ama eminimki php bunu yapıyorsa bir bildiği vardır :)

PHP:
//Serialize Etmek (Dosyaya kaydetmek)
class Deneme {
  public $ad;
  public $soyad;
  public $tc;

  public function __construct($ad,$soyad,$tc){
      $this->ad=$ad;
      $this->soyad=$soyad;
      $this->tc=$tc;
  }
}

$Deneme= new Deneme('Bytrislasis','Sahin','1234567891011');
touch("kayit.txt");//her ihtimale karsı
file_put_contents('kayit.txt',serialize($Deneme));
dosyamızı kaydedin örnek index.php sonra 1 kere çalıştırın
Buda o Dosyadan tekrar okuma işlemi


PHP:
//Unserialize İşlemi
include("index.php");
class Deneme {
  public $ad;
  public $soyad;
  public $tc;

 
  public function __construct($ad,$soyad,$tc){
      $this->ad=$ad;
      $this->soyad=$soyad;
      $this->tc=$tc;
  }
}

$Deneme=unserialize(file_get_contents('kayit.txt'));

echo $Deneme->ad;
?>
detaylı kaynak

zaten acıklama yapılmış

Bir değerin saklanabilir bir gösterimini üretir.
PHP değerlerini, yapısını ve türünü kaybetmeden saklamak veya aktarmak için kullanışlıdır.
Böyle bir değerden tekrar özgün değeri elde etmek için unserialize() işlevini kullanın.

Kaynak
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#8
arkadaşlar Final deyimi ile Tanımlanan Sınıflar genişletilemez yani tanımladığımız sınıfı Extends fonksiyonu ile baska bir sınıfta kullanamayız örnek aşağıdadır.. Yani Yolun Sonu :) Bu Fonksiyonda Arada Kaldım Sanki Gereksiz Gibi geldi bana bu yüzden tereddütteyim halen :)


PHP:
01    <?
02    final class sinifim {
03     var  $isim = "Bytrislasis";
04     function yazdir(){
05     echo $this->isim;
06     }
07    }
08     
09    class alt_sinif extends sinifim {
10     public  function alt_method (){
11     parent::yazdir();
12     }
13    }
14     
15    $new = new alt_sinif();
16    $new->alt_method();
17    ?>
ekrana bastırdıgımızda söyle bir hata alacağız

Fatal error: Class alt_sinif may not inherit from final class (sinifim) in
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#9
arkadaşlar bu mesajda __CLASS__ ve __METHOD__ Fonksiyonlarını Anlatıcam

php.net bu iki fonksiyon için şu açıklamayı yapmıs
Kod:
[COLOR=Blue]__CLASS__[/COLOR]       Sınıf ismi. (PHP 4.3.0 ile eklenmiştir). PHP 5 itibariyle bu sabit, sınıf ismini bildirimindeki haliyle (büyük-küçük harf duyarlı) içerir. PHP 4 sürümünde ise bu değer her zaman küçük harflerden oluşur.
[COLOR=Blue]__METHOD__[/COLOR]     Yöntem ismi. (PHP 5.0.0 ile eklenmiştir). Bu sabit, yöntem ismini daima bildirimindeki haliyle (büyük-küçük harf duyarlı) içerir.
__CLASS__ Fonksiyonu Bizim Yarattıgımız Sınıfın İsmini __METHOD__ Fonksiyonuda Sınıfımızın İçersindeki Methodların İsimlerini verir
örnek Aşşağıdadır..

PHP:
<?
$sinif = __LINE__;class sinifim { 
    var $isim ="<b>Bytrislasis</b>";
        public function _public_Method(){
            echo "Merhaba : ".$this->isim."<br>";
            echo "Ben <b><font color='red'>".__CLASS__."</b></font> İsimli Nesnedeki  <b><font color='red'>".substr(__METHOD__,-14)."</b></font>'dan Geliyorum<br>";
            echo "Sınıfımın Bulundugu Satır <b><font color='red'>".$GLOBALS['sinif']."</b></font><br>"; 
        }
}

$new = new sinifim();
$new->_public_Method();
?>
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#10
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

PHP:
<?
class Sinifim {
    
}
echo (class_exists(Sinifim)?"Yaratılmış":"yaratılmamış");
?>
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#11
Vbulletin 3.8.4 ve üzeri 4.x sürümler için login olmak örnek uygulama

PHP:
<?
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 http://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();
?>
 

ByTRiSLaSiS

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
133
Beğeniler
0
Konum
İstanbul
#12
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

PHP:
<?
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 :)
 

saintx

webmaster.tc
Katılım
24 Ağu 2012
Mesajlar
111
Beğeniler
0
Konum
Akhisar
#13
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

PHP:
<?
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 :)
sihirli mi sihirli bi' metottur kendisi :)