Klasik alt program yazarak yapılan bir PHP kodunu OOP (Object Oriented Programming – Nesne Tabanlı Programlama) mantığına göre yeniden yazalım:
 
3 dosyamız var. index.php, gereklilerKlasik.php ve gereklilerOOP.php …
 
gereklilerKlasik.php içinde bildiğimiz alt program (function ve global değişkenler) yazarak hazırladığımız kütüphane dosyamız var. Bu dosya require veya include komutları ile index.php’ye dahil edilir.
 
<?
$_host = "localhos";  //bilerek son harf silindi
$_username = "root";
$_password = "";
 
function temizle($metin) {
    $metin = str_replace("’", "`", $metin);
    $metin = str_replace(""", "`", $metin);
    $metin = trim(htmlspecialchars($metin,ENT_QUOTES,’UTF-8′));
    return $metin;
}
function baglan() {
 global  $_host;
 global  $_username;
 global  $_password;
    return  @mysql_connect($_host, $_username, $_password);
}
function newPassw($sonu) {
   $seed="";
   for ($i = 1; $i <= $sonu; $i++)
       $seed .= substr(‘0123456789abcdefghijklmnoprstuvyz’, rand(1,32), 1);
   return ($seed);
}
function emailIsValid ($email) { 
 if (eregi("^[a-z0-9._-]+@[a-z0-9._-]+.[a-z]{2,6}$", $email))
     return TRUE;
 else
     return FALSE;      
}
?>
 
gereklilerOOP.php dosyası aynı işlevleri sağlayan 2. sürüm kütüphane dosyamız. Bu dosya da require veya include ile index.php’ye bağlanır.
 
<?
class gerekli {
 var $_host = "localhos";
 var $_username = "root";
 var $_password = "";
 
 public function temizle($metin) {
  $metin = str_replace("’", "`", $metin);
  $metin = str_replace(""", "`", $metin);
  $metin = trim(htmlspecialchars($metin,ENT_QUOTES,’UTF-8′));
  return $metin;
 }
 public function baglan() {
  return mysql_connect($this->_host, $this->_username, $this->_password);
 }
 public function newPassw($sonu) {
    $seed="";
    for ($i = 1; $i <= $sonu; $i++)
     $seed .= substr(‘0123456789abcdefghijklmnoprstuvyz’, rand(1,32), 1);
    return ($seed);
 }
 public function emailIsValid ($email) { 
  if (eregi("^[a-z0-9._-]+@[a-z0-9._-]+.[a-z]{2,6}$", $email))
   return TRUE;
  else
   return FALSE;      
 }
}
?>
Ana dosyamız olan index.php’nin kodları:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />  
    <title>PHP ile OOP</title> 
</head>
<body>
<h2>Eski Klasik (Prosedürel) yöntem ile kütüphane kullanımı:</h2>
<?
 require("gereklilerKlasik.php"); 
 $yol = baglan();
 if($yol) echo "Bağlantı var."; else echo "Bağlantı hatası: [", mysql_error(),"]";
 echo "<br/>";
 $temizlenen = temizle("   <a href=’test’>Test</a> ");
 echo "Temiz Bilgi: [".$temizlenen."]";
 echo "<br/>";
 echo "Bir Parola Üret: ".newPassw(6) ;
 echo "<br/>"; 
 echo "
‘abc@asd.com’ doğru bir eposta adres midir? ".(emailIsValid("abc@asd.com")?"Evet":"Hayır");
?>   
<h2>Yeni Nesne Tabanlı (Object Oriented) yöntem ile kütüphane kullanımı:</h2>
<?
 require("gereklilerOOP.php"); 
 $nesnemiz = new gerekli(); 
 $yol2 = $nesnemiz->baglan();
 if($yol2==TRUE) echo "Bağlantı var."; else echo "Bağlantı hatası: [". $yol2."]";
 echo "<br/>";
 $temizlenen = $nesnemiz->temizle("   <script>alert(‘a’);</script> ");
 echo "Temiz Bilgi: [".$temizlenen."]";
 echo "<br/>";
 echo "Bir Parola Üret: ".$nesnemiz->newPassw(10) ;
 echo "<br/>"; 
 echo "
‘abc@asd.com’ doğru bir eposta adres midir? ".($nesnemiz->emailIsValid("abc@asd.com")?"Evet":"Hayır");
 
?>   
</body>
</html>
Class yazarak projenizdeki istediğiniz metod, değişken veya başka sınıfın izinlerini (public, private…) düzenleyebilir, daha portatif daha taşınabilir kod yazımına geçersiniz. Hız bakımından ise bir farkı yok şimdilik. Kod güvenliği artırılıyor.
 
Reklamlar