KategorilerPhp

Erişim Belirleyiciler: Public & Private

Bu derste neler öğreneceğiz ?

  • Public(genel) erişim belirleyicisi nasıl kullanılır ?
  • Private(Özel) erişim belirleyicisi nasıl kullanılır ?
  • Private(Özel) özelliklere nasıl erişilir ?
  • Neden erişim belirleyicilerine ihtiyacımız vardır ?

Daha önceki yazılarımda, sınıflarımızdaki metot ve özelliklerin önünde herhangi bir açıklama yapmadan public erişim belirleyicisini kullandık. Genel erişim belirleyicisi, kullandığımız birkaç belirleyiciden yalnızca biridir. Bu eğitimde, özel erişim belirleyicisi adı verilen başka bir belirleyici hakkında bilgi edineceğiz.

Public erişim belirleyicisi, sınıfın dışından veya içinden bir kodun sınıfın yöntemlerine ve özelliklerine erişmesine izin verirken, private belirleyici, sınıfın dışındaki herhangi bir koddan bir sınıfın yöntemlerine veya özelliklerine erişimi engeller.

Public erişim belirleyicisi

Aşağıdaki örnek size zaten aşina olmalıdır. Örnekte, sınıfın özelliği ve yöntemi public olarak tanımlanmıştır , böylece sınıfın dışındaki kod bunlarla doğrudan etkileşime girebilir.

<?php
 
class Car {
 
  public $model;    
 
  public function getModel()
  {
    return "Araba modeli " . $this->model;
  }

}
 
$mercedes = new Car();

$mercedes->model = "Mercedes";

echo $mercedes->getModel();
SONUÇ

Araba modeli Mercedes'tir.

Private erişim belirleyicisi

Public erişim belirleyicisi yerine private erişim belirleyicisini ile tanımlarsak, sınıflarımızdaki özelliklere ve yöntemlere erişimi engelleyebiliriz.

Aşağıdaki örnekte $model özelliğini private olarak tanımlıyoruz ve onun değerini sınıf dışından ayarlamaya çalıştığımızda ölümcül bir hata ile karşılaşıyoruz.

<?php
 
class Car {
 
  //Private Özellik

  private $model;
    
  public function getModel()
  {
    return "Araba modeli " . $this->model;
  }

}
 
$mercedes = new Car();
 
$mercedes->model = "Mercedes Benz";

echo $mercedes->getModel();
 
?>
SONUÇ

Private özelliklere nasıl erişilir ?

Sınıf dışından özel özelliklere erişimimiz olmadığını gördük, ancak yine de özelliklerin değerlerini bir şekilde ayarlayıp almamız gerekiyor. Özel özelliklerle etkileşimde bulunmak için genel metotlar kullanırız çünkü bunlar hem sınıfın kapsamı dışındaki kodla hem de sınıf içindeki kodla etkileşime girebilir. Bu şekilde etkileşime girebilen genel metotlar genellikle iki tür yönteme ayrılır:

1.Private özelliklere değer vermek için kullandığımız yöntem.

2.Private özelliklerin değerlerini almak için kullandığımız yöntem.

Aşağıdaki örnekte

buy levitra uk online

, değer verme ve değer alma yöntemlerini kullanarak $model adlı private bir özelliğin değerini alıp ayarlayabileceğimizi göreceğiz. Araba modelinin değerini ayarlamak için setModel( ) metodunu ve özelliğin değerini almak için getModel() metodunu kullanacağız.

<?php
 
class Car {
 
  private $model;
 
  public function deger_ver($model)
  {
    $this->model = $model;
  }
  
  public function deger_al()
  {
    return "Araba modeli " . $this->model;
  }

}
 
$mercedes = new Car();

// Değer verme metodumuz
$mercedes->deger_ver("Mercedes benz");

// Değer alma metodumuz
echo $mercedes->deger_al();
 
?>
SONUÇ

Araba modeli Mercedes benz

Neden erişim belirleyicilere ihtiyacımız var?

Sınıfların dışından gelen kodların sınıfların metot ve özelliklerinde yapabileceği değişiklikleri sınırlamak için erişim belirleyicilere ihtiyacımız var. Bir özelliği veya metodu private olarak tanımladığımızda , yalnızca sınıf içindeki yöntemlerin ona erişmesine izin verilir. Bu nedenle, özel metotlar ve özelliklerle etkileşim kurmak için public metotlar ile işlem sağlamamız gerekir. Bu metotların içine sınıf dışından gelen verileri doğrulayabilen ve kısıtlayabilen işlemleri koyabiliriz.

Örneğimizde, public setModel() metodunda modeller için izin verilen alternatifleri tanımlayarak yalnızca belirli araba modellerinin yoluna girebileceğini ve private $model özelliğine atanabileceğini doğrulayabiliriz. Bu amaçla, setModel() yönteminde izin verilen araba modelleri dizisini tanımlarız ve $model özelliğine yalnızca bu modellerin atandığını kontrol ederiz .

<?php
 
class Car {
 
  private $model;
 
  public function deger_ver($model)
  {
    // Değer vermek için izin verilen modeller
    $izin_verilen_modeller = array("Mercedes Benz","BMW","Audi");
 
    // in_array() = girilen değerin, izin verilen değerler arasında olup olmadığını kontrol eder
    if(in_array($model,$izin_verilen_modeller))
    {
      $this->model = $model;
    }
    else
    {
      $this->model = "Yazdığınız model izin verilenler listemizde bulunmuyor!";
    }
  }
  
  public function deger_al()
  {
    return "Araba modeli" . $this->model;
  }
}
 
 
$mercedes = new Car();

$mercedes->deger_ver("Mercedes Benz");

echo $mercedes->deger_al();
 
?>
SONUÇ

Araba modeli Mercedes Benz.

Eğer deger_ver() metodumuzda girilen değer izin verilen degerler arasında bulunmasaydı :

SONUÇ

Yazdığınız model izin verilenler listemizde bulunmuyor!

Takıldığınız bir yer olursa yorum yapmaktan veya WhatsApp grubumuzdan yazmaktan çekinmeyin. Sorunuz yanıtsız kalmayacaktır. Kendinize iyi bakın. Bir sonraki yazıda görüşmek dileğiyle. Allah’a emanet olun.

mstfkrtll whatsapp-button
https://chat.whatsapp.com/Jul6h8jsXkpKqke2d7N17b
KategorilerPhp

PDO ile Veri Silme İşlemi

Selamun Aleyküm.

Bu yazımda PHP PDO ile veri silme işlemini anlatacağım.

İlk olarak veritabanımı oluşturacağım.

PhpMyAdmin’e girerek “blog” adında bir veritabanı oluşturuyorum. Bu veritabanının içine de “articles” adında bir tablo oluşturuyorum ve bu tabloya aşağıdaki resimde gösterilen satırları ekliyorum.

Pdo ile veritabanına veri ekleme
articles tablosuna eklediğim satırlar

Bu satırları ekledikten sonra aşağıda gösterilen sekmelerden “Ekle” yazana tıklıyorum ve tabloma yeni veriler ekliyorum. Dilerseniz tabloya veri eklemek için “PDO ile Veri Ekleme İşlemi” adlı yazımı da okuyabilirsiniz.

Php pdo veri güncelleme
Ekle sekmesinden yeni veriler ekliyoruz

Tabloya verilerimi ekledikten sonra Veritabanı bağlantısını yapmak için Xampp/htdocs klasörü içine blog adında bir klasör oluşturuyorum ve onun içine de “db.php” adında bir dosya oluşturuyorum. Db.php dosyasının içine aşağıdaki kodlarımı yazıyorum. Bu şekilde veritabanına bağlantımı gerçekleştirmiş oluyorum.

<?php

# 	www.mstfkrtll.com

#	15 Ocak 2022 | Cumartesi

#	Pdo ile Veritabanı Bağlantısı İşlemi

try {

     $db = new PDO("mysql:host=localhost;dbname=blog","root","");

     echo "Veritabanı bağlantısı başarıyla kuruldu.";
     
} catch ( PDOException $e ){

     echo "Veritabanı bağlantısı kurulurken bir hata oluştu. =>: ".$e->getMessage();

}

Veritabanı bağlantısını da yaptığıma göre pdo ile veri silme(delete) işlemine geçebilirim. Xampp/htdocs/blog klasörümün içine index.php adında bir dosya oluşturuyorum ve onun da içine aşağıdaki kodlarımı yazıyorum.

# 	www.mstfkrtll.com

#	15 Ocak 2022 | Cumartesi

#	Pdo ile Veri Silme İşlemi



# veritabanı bağlantısı yaptığımız dosyayı index.php dahil ediyoruz.
require_once('db.php');


# PDO ile Veri silme(delete) işlemi için kodumu hazırlıyorum
$query = $db->prepare("DELETE FROM articles WHERE article_id=?");

# Yukardaki silinmesini istediğimiz verinin article_id'sini yazıyoruz
$result = $query->execute(array(11));


if($result)
{
	#sonuc başarılı ise burası çalışsın.
	echo "Silme işlemi başarıyla gerçekleştirildi.";
}
else
{
	#sonuc başarısız ise burası çalışsın.
	echo "Silme işlemi yapılırken bir hata oluştu.";
}

Daha detaylı incelemek için https://www.php.net/manual/tr/pdo.prepare.php bu sayfayı ziyaret edebilirsiniz.

Yukarıdaki kodumda prepare kısmının açıklaması şu şekildedir; DELETE FROM articles bu kısımda hangi tablodan veri silme işlemi yapacağımı belirtiyorum. WHERE article_id=? bu kısımda ise article_id‘si kaç olan veriyi sileceğimi belirtiyorum.

execute kısmının açıklaması ise şöyledir; yukarıda silinmesini istediğim verinin article_id‘sini array içinde belirtmemdir.

Yukarıdaki kodumu index.php dosyamın içine yazdıktan sonra tarayıcımı açıp http://localhost/blog adresine giriş yapıyorum. Giriş yaptıktan sonra ekranıma “Silme işlemi başarıyla gerçekleştirildi.” cümlesi yazdırılacaktır.

Yani PDO ile veritabanında yaptığımız silme işlemi başarılı bir şekilde çalışıyor.

Takıldığınız bir yer olursa yorum yapmaktan veya WhatsApp grubumuzdan yazmaktan çekinmeyin. Sorunuz yanıtsız kalmayacaktır. Kendinize iyi bakın. Bir sonraki yazıda görüşmek dileğiyle. Allah’a emanet olun.

KategorilerPhp

PDO ile Veri Ekleme İşlemi

Selamun Aleyküm.

Bu yazımda PHP PDO ile veri ekleme işlemini anlatacağım.

İlk olarak veritabanımı oluşturacağım.

PhpMyAdmin’e girerek “blog” adında bir veritabanı oluşturuyorum. Bu veritabanının içine de “articles” adında bir tablo oluşturuyorum ve bu tabloya aşağıdaki resimde gösterilen satırları ekliyorum.

Pdo ile veritabanına veri ekleme
articles tablosuna eklediğim satırlar

Bu satırları ekledikten sonra Veritabanı bağlantısını yapmak için Xampp/htdocs klasörü içine blog adında bir klasör oluşturuyorum ve onun içine de “db.php” adında bir dosya oluşturuyorum. Db.php dosyasının içine aşağıdaki kodlarımı yazıyorum. Bu şekilde veritabanına bağlantımı gerçekleştirmiş oluyorum.

<?php

# 	www.mstfkrtll.com

#	13 Ocak 2022 | Perşembe

#	Pdo ile Veritabanı Bağlantısı İşlemi

try {

     $db = new PDO("mysql:host=localhost;dbname=blog","root","");

     echo "Veritabanı bağlantısı başarıyla kuruldu.";
     
} catch ( PDOException $e ){

     echo "Veritabanı bağlantısı kurulurken bir hata oluştu. =>: ".$e->getMessage();

}

Veritabanı bağlantısını da yaptığıma göre pdo ile veri ekleme(insert) işlemine geçebilirim. Xampp/htdocs/blog klasörümün içine index.php adında bir dosya oluşturuyorum ve onun da içine aşağıdaki kodlarımı yazıyorum.

# 	www.mstfkrtll.com

#	13 Ocak 2022 | Perşembe

#	Pdo ile Veritabanına Veri Ekleme İşlemi



# veritabanı bağlantısı yaptığımız dosyayı index.php dahil ediyoruz.
require_once('db.php');


# PDO ile Veri eklemek(insert) için kodumu hazırlıyorum
$query = $db->prepare("INSERT INTO articles SET article_title=?, article_slug=?, article_description=?");

# Verilerimi articles tabloma eklemesi için execute içinde array olarak yazıyorum
$result = $query->execute(array('Makale Başlığı','makale-basligi','PDO ile veri ekleme işlemini yapıyoruz.'));


if($result)
{
	#sonuc başarılı ise burası çalışsın.
	echo "Ekleme işlemi başarıyla gerçekleştirildi.";
}
else
{
	#sonuc başarısız ise burası çalışsın.
	echo "Ekleme işlemi yapılırken bir hata oluştu.";
}

Daha detaylı incelemek için https://www.php.net/manual/tr/pdo.prepare.php bu sayfayı ziyaret edebilirsiniz.

Yukarıdaki kodumu index.php dosyamın içine yazdıktan sonra tarayıcımı açıp http://localhost/blog adresine giriş yapıyorum. Giriş yaptıktan sonra ekranıma “Ekleme işlemi başarıyla gerçekleştirildi.” cümlesi yazdırılacaktır.

Yani PDO ile veritabanına yaptımız ekleme işlemi başarılı bir şekilde çalışıyor.

Takıldığınız bir yer olursa yorum yapmaktan veya WhatsApp grubumuzdan yazmaktan çekinmeyin. Sorunuz yanıtsız kalmayacaktır. Kendinize iyi bakın. Bir sonraki yazıda görüşmek dileğiyle. Allah’a emanet olun.