IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   PHP (https://www.ircforumlari.net/php/)
-   -   Karar - Kontrol Mekanizması (https://www.ircforumlari.net/php/477877-karar-kontrol-mekanizmasi.html)

MorfiN 30 Nisan 2012 13:48

Karar - Kontrol Mekanizması
 
PHP 5'de basit bir karar-kontrol mekanizması
PHP 5'de karar kontorol mekanizması değiştiği önceki makalemizde söylemiştik.Şimdi ise karar kontol mekanizması hakkında basit bir örnek vereceğiz. Aşağıda ki kod yapısında karar kontrol mekanizmasını try ile gerçekleştiriyoruz ama hata kodlarını bir fonksiyonda topluyoruz.

PHP- Kodu:

<? 
#Hata oluştuğunda çalışacak fonksiyon 
function hata Exception $hata 

$mesaj "<h2>Hata:</h2>" 
."Hata Kodu: {$hata->getCode()} <br />\n" 
."Hata Mesajı: {$hata->getMessage()} <br />\n" 
."Hata Satırı: {$hata->getline()} <br />\n" 
."Hata Dosyası: {$hata->getFile()}"
return (
$mesaj); 

#işlem yapan fonksiyon 
function deneme ($toplam$n

if ( 
$n == 
throw new 
Exception("Belirtilen Sayı 0"); 


return ( 
$toplam $n ); 

#hata kontrol mekanizması 
try 

$a deneme(100,0); 
print 
"Deneme = {$a}"

catch (
Exception $hata

print 
hata($hata); 

?>


Yukarıda ki kod yapısını satır satır anlatacak değilim.Önemli olan bikaç noktaya parmak basmak isterim.Öncelikle şunu belirtmek isterim:Kodları oluştururken bırakında kod yazın.Birkaç satırlık kod yazarak sistem mimarisi yapmayın.

Hata çıkması durumunda çalıştıracağımız bir fonksiyon oluşturup, bu fonksiyonda hata kodlarını çıkartıyoruz."Hata kodları belirttim, ayrıca açıklamaya lüzum yok"
İkinci fonksiyonda ise değişkenin değerinin 0 olup olmadığını test ediyoruz.
Sistem mimarisinde hata kontrol mekanizması için de, try sisteminden yararlanıyoruz.Hata kontrol mekanizmasında fonksiyonu çağırıp 100 ve 0 sayısını fonksiyona iletiyoruz.
Yukarıda basit bir kod oluşturduktan sonra bu uygulamayı azcık somutlandırmak için başka veritabanı işlemi oluşturalım.Önce MySQL 4.1 için gerekli Tablo ve verilerini verelim.

PHP- Kodu:

CREATE TABLE uyeler 
no int(10unsigned NOT NULL auto_increment
adi varchar(20NOT NULL default ''
soyadi varchar(20NOT NULL default ''
user varchar(15NOT NULL default ''
pass varchar(8NOT NULL default ''
KEY no (no
ENGINE=MyISAM;

INSERT INTO uyeler VALUES (1,'İlknur','Yılmaz','ilknur','123456'); 
INSERT INTO uyeler VALUES (2,'Birgül','Er','birgul','450416'); 
INSERT INTO uyeler VALUES (3,'Fatma','Saraç','fatma','45116'); 
INSERT INTO uyeler VALUES (4,'Gülden','Onat','gulden','213456'); 

SQL kodunu verdikten sonra sıra geldi MySQL veritabanı bağlantısı için gerekli olan nesnemizi oluşturmaya.Klasik nesne ile MySQL bağlantısından biraz farklılık göstermekle beraber mantık silsilesi yine aynı.

PHP- Kodu:

<? 
class mysql 

private 
$host
private 
$user
private 
$pass
private 
$db
private 
$baglanti
private 
$query
private 
$result

public function 
__construct($host$user$pass$db) { 
$this->host $host
$this->user $user
$this->pass $pass
$this->db $db

public function 
connection() 

try 

$this->baglanti = new mysqli($this->host,$this->user,$this->pass,$this->db); 
if ( ! 
$this->baglanti 
throw new 
Exception("MySQL veritabanına Bağlanamadım"); 


catch (
Exception $error

die(
"{$error->getMessage()} {$error->getLine()}"); 


public function 
sorgu($query

try 

$this->result $this->baglanti->query($query); 
if ( ! 
$this->result 
throw new 
Exception("Sorgumuz çalışmadı"); 

catch (
Exception $error

die(
"{$error->getMessage()} {$error->getLine()}"); 

return 
$this->result

public function 
veriListeleme() 

try 

echo 
"<table width='50%' border=1 align='center'> 
<tr> 
<td>No</td> 
<td>Adı</td> 
<td>Soyadı</td> 
<td>User</td> 
<td>Pass</td> 
</tr>"

while ( 
$oku $this->result->fetch_assoc()) { 
echo 
"<tr> 
<td>
$oku[no]</td> 
<td>
$oku[adi]</td> 
<td>
$oku[soyadi]</td> 
<td>
$oku[username]</td> 
<td>
$oku[PASSWORD]</td> 
</tr>"


$this->result->close(); 
echo 
"</table>"


catch (
Exception $error

die(
"{$error->getMessage()} {$error->getLine()}"); 


public function 
kop() 

return 
$this->baglanti->close(); 


?>


Yukarıda ki komut yapısında dikkat edilmesi gereken en önemli husus en başta yer alan __construct fonksiyonu.Bu fonksiyon olmadan nesnemizin sabit değişkenleri görevini yürütemez.Ayrıntılı bilgi için: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Diğer fonksiyonlar yukarıda gösterdiğimiz gibi try karar-kontrol mekanizmasıyla oluşturuluyor.Yukarıda ki komut satırını mysql.class.php adıyla kaydedin.

PHP- Kodu:

<? 
include("mysql.class.php"); 
$nesne = new mysql("localhost","root","","test"); 
$nesne->connection(); 
$nesne->sorgu("select * from uyeler"); 
$nesne->veriListeleme(); 
$nesne->kop(); 
?>

Yukarıda ki komut satırında da MySQL için verileri listelemek için nesnemiz içerisinde ki fonksiyonları teker teker çağırıyoruz.
Yukarıda ki komut satırlarını iyice inceleyip, özümsedikten sonra PHP 5 ile MySQL 4.1 versiyonunu nesne kalıplarını kullanarak geliştirme işlemine yelken açabilir, kodlarınızı daha profesyonelce hazırlanmış bir şekle sokabilirsiniz.Unutmayın, biz burada PHP 5'in karar-kontrol mekanizmasını kavramanız için mümkün olduğunca basite indirgedim.Bir başka PHP 5 makalesinde görüşmek dileğiyle, uzun kod yazın, performansınızı artırın


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:31.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk