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

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 30 Nisan 2012, 13:48   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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 Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<? 
#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 Kod:   Kodu kopyalamak için üzerine çift tıklayın!
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 Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<? 
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 Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<? 
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

__________________

Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Çocukta Dikkat Çekme Mekanizması Ecrin Çocuk Sağlığı 0 29 Şubat 2012 23:42
Adet Görme (Metruasyon) Mekanizması Lucifer Kadın Sağlığı 0 08 Ocak 2012 20:43
Karar Vermeden Önce Nasıl Karar Vereceğinize Karar Verin Ruj Kişisel Gelişim 0 05 Eylül 2011 20:05
Sabunun Temizlik Mekanizması Luis IF Ekstra 0 16 Nisan 2010 09:15
Evrim Mekanizması YapraK Kimya 0 16 Nisan 2009 04:04