Bu sayfadaki yazılar
Sayfanın metni
Sayfa 52
Public / Private / Protected Kelimeleri
PHP 5 ile eklenen bu kelimeler C++ dilindeki ile aynı anlamlara gelmektedirler.
Public:
"public" kelimesi ile tanımlanan değişken ve metotlara sınıf dışından doğrudan erişilebilir. Sınıftan oluşturulmuş bir nesne doğrudan bu değişkenlere ve metotlara ulaşabilir.
Private:
"private" kelimesi kullanarak tanımlanmış değişken ve metotlara yalnızca o sınıf içerisinden ulaşılabilir. Sınıftan oluşturulmuş bir nesne doğrudan bu değişkenlere/metotlara ulaşamaz. Private kullanımı, ileri düzey hız gereksinimi olmayan projelerde güzel bir güvenlik tedbiridir. Bu değişkenin değerlerini değiştirme yetkisine sahip metotlara çeşitli denetimler eklemek mümkündür. Örnek olarak yalnızca 1-1000 arası değerler alabilecek bir değişkene asla almaması gereken bir değer verilememesi ilgili metotta kontrol ettirilebilir. Böylelikle bu değişkeni kullanan programın diğer kısımları hatalı değerlerden olumsuz olarak etkilenmezler.
Protected:
"protected" olarak tanımlanmış değişkenler tek bir sınıf söz konusu olduğunda aynen "private" değişkenler gibi davranırlar. Bu değişkenlere ancak sınıf içerisinden ulaşılabilir ve sınıf dışından tanımlanan bir nesne üzerinden doğrudan ulaşılamaz. Ancak "protected" kelimesinin farkı türetilmiş sınıflarda ortaya çıkar. Eğer B sınıfı A sınıfından türetilmiş ise A sınıfında "protected" olarak tanımlanmış değişkenlere B sınıfından ulaşılabilir.
Tüm
İhtimalleri düşünecek olursak; Public değişkenlere:
Sınıf içerisinden: Ulaşılabilir Sınıf dışından: Ulaşılabilir
Türetilmiş bir sınıftan: Ulaşılabilir
Private değişkenlere:
Sınıf içerisinden: Ulaşılabilir Sınıf dışından: Ulaşılamaz
Türetilmiş bir sınıftan: Ulaşılamaz
Protected değişkenlere
Sınıf içerisinden: Ulaşılabilir Sınıf dışından: Ulaşılamaz
Türetilmiş bir sınıftan: Ulaşılabilir
Sınıflar İle İlgili Değerlendirme
PHP 5'te sınıflar, yukarıda anlatılan özellikler haricinde ":: operatörü", "static, self, parent kelimeleri", "overloading" gibi birçok özelliğe daha sahiptir. Ancak PHP projelerinde genel olarak ihtiyaç duyulan konular yukarıda vurgulanan konulardır. İleri derece sınıf kullanım örnekleri zaman içerisinde anlatılacaktır.
Veritabanı Uygulamaları
Bu bölüme kadar hep PHP'nin genel yapısı ile ilgili bilmemiz gerekenleri ve bunlarla ilgili çeşitli örnekler gördük. Şimdi yavaş yavaş PHP ile daha ciddi uygulamalar yazabilmek amacıyla veritabanlarıyla çalışma yöntemlerine göz atacağız.
PHP ile ODBC destekleyen herhangi bir veritabanını kolayca kullanmamız mümkündür. Ancak PHP'nin ilk yıllarından beri desteklediği yegane veritabanı MySQL'dir. PHP 4 versiyonunda genellikle PHP'nin çekirdeğinde hazır olarak gelen MySQL eklentisi PHP 5 mimarisinde yeniden dış eklenti haline getirilmiştir. Yani PHP 5'te MySQL kullanabilmek için php.ini dosyasında yer alan eklentiler bölümünden (extensions) "php_mysql.dll"i aktive etmenizdir.
Bir eklenti nasıl aktif edilir? "php.ini" dosyası PHP 4'te genellikle C:\Windows ya da C:\WinNT klasöründe, PHP 5'te ise PHP'nin kurulu olduğu klasörde yer alır. Öncelikle "php.ini" dosyasının içerisinde yer alan;
AAA Dynamic Extensions ;
yazan bölümü bulmanız gerekiyor. Bu bölümde birçok; extension=php_*.dll şeklinde satırlar göreceksiniz. ; karakterinin bulunduğu bölümde eklentinin ismi yazacaktır. Örnek olarak MySQL'in eklentisi php_mysql.dll'dir. Başlarında gördüğünüz ";" ini dosyalarında yorum anlamına gelir. Yani ;'den sonra ne yazarsanız yazın hiçbir işlevi olmayacaktır, sadece açıklama satırı olarak algılanacaktır. Aktive etmek istediğiniz eklentilerin başlarında yer alan ";
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 53
karakterini silerek eklentiyi çalıştırabilirsiniz. Eğer bir şekilde hata mesajları almaya başlarsanız yine php.ini'de yer alan "extension_dir" satırını bulun. Bu satır dll'lerin bulunduğu klasörü işaret etmelidir. Örneğin eklentiler PHP 5'in kurulu olduğu klasörün içerisindeki "ext" klasöründe yer alıyorsa;
extension_dir
"extension_dir"ın bu şekilde tanımlanması gerekir.
"php.ini"de yapılan değişikliklerin algılanması için önemli bir husus PHP'nin kurulum biçimidir. Eğer PHP'yi CGI olarak kurmuşsanız php.ini'de yapılacak herhangi bir değişiklik bir sonraki PHP dosyası çağırıldığında otomatik olarak algılanmış olacaktır. Ancak eğer ISAPI kurulum yapmışsanız web server'ınızı durdurup başlatana kadar bu değişiklikler algılanmayacaktır.
PHP ve MySQL'in kurulumundan dolayı yaşamanız muhtemel birçok hata mesajı mevcuttur. Bu hata mesajlarını almanız halinde PHP ve MySQL forumlarında ya da daha hızlı bir şekilde Google gibi bir arama motorunda hata mesajlarını arayarak çözümlere ulaşabilirsiniz.
Şimdi MySQL veritabanına bağlanmak ve bir MySQL tablosunu listelemek ile ilgili çeşitli yöntemleri görelim.
1. Yöntem - Düz, Açık Kod Tarzı
<?php // Veritabani Baglantisi $baglanti mysgl connect ("127.0.0.1",
mir)
or die("MySOL'e erisilemiyor"); mysgl select db("mysgl", $baglanti) or die("Veritabanina erisilemiyor");
// SOL Cumlesi $sgl "SELECT * FROM db";
#/ SoOL'i Calistir $tablo mysal guery($sgl,
$baglanti);
// Tabloyu Ac echo "<table border-'l1l'>";
// Tablo Basligi echo "<tr bgcolor-'#EEEEEE'>";
for($i - O; $i < mysgl num fields($tablo); Şitt4) echo "<td>".mysgal field name($tablo, $i). " </td>"; echo // Tablo Icerigi while($satir — mysgl fetch array($tablo) 1 // Tablo Sat#rlari echo for(Şi « O; $i < mysgl num fields($tablo); $Şi44) echo "<td>".$satiri$i)." </td>"; echo
)
// Tabloyu Kapat
echo "</table>"; ?>
Bu yöntem ile ekrana MySQL Sunucusu'nda yer alan "mysql" veritabanındaki "db" tablosunun içeriğini bir HTML tablosu şeklinde ekrana dökmüş oluruz. Aslında bu örneğin başında ve sonunda <html>, <head>, <body> gibi taglerin de yer alması gerekir ancak şu aşamada bunları kullanmadan da sonucu görebiliriz.
Burada dikkat etmeniz gereken komutlar "mysql_" ile başlayan komutlardır, yani;
mysal connect() mysal select db() mysal guery() mysal num fields() mysal field mysal fetch array()
komutları tabloyu listelerken kullandığımız komutlardır. Bu komutların haricinde de birçok mysql komutu mevcuttur ancak ilk aşamada bu komutlar işimizi görecektir.
mysql_connect()
Bu komut MySQL serverına bağlantı yapmayı sağlar. Bu bağlantı olmaksızın MySQL sunucusuyla ilgili herhangi bir işlem yapmamıza olanak yoktur.
Bu komuttan dönen değer bağlantıya ait bir ID numarasıdır. Bu numara özellikle birden fazla MySQL bağlantısının aynı anda açılması durumunda önem kazanır. Eğer tek bir bağlantı söz konusu ise o kadar önemli değildir.
mysql_connect 5 parametre alır ancak tüm parametreleri de opsiyoneldir. Bu parametreleri kısaca tanıyalım.
MySQL sunucu ismi/IP'si: MySQL sunucusunun Host ya da IP'si
Kullanıcı Adı: MySQL sunucusu üzerindeki yetkili bir kullanıcı ismi
Şifre: Kullanıcının şifresi
Yeni bağlantı: Eğer daha önce mysql_connect komutu çağırılmışsa yeni bağlantı yapmadan önceki bağlantının ID'sini almaya yarar.
İstemci bayrakları: Bu parametre ile MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE veya MYSQL_CLIENT_INTERACTIVE gibi istemci tarafında önem arz eden özellikler açılıp kapanabilir.