PHP 1: Genel PHP tanımları..

Özgür Kuru
ozgurkuru
Published in
2 min readJul 13, 2009

--

Merhabalar,

Genel olarak uzun bir süredir php üzerinde çalışıyorum. Artık yavaş yavaş bilgilerimi paylaşmanın vakti geldi sanırım. İlk olarak Php ile uğraşırken genel olarak bilmemiz gereken tanımlardan bahsedeceğim.

Php sunucu taraflı (server side) diye tabir ettiğimiz bir betik dilidir. Sunucu taraflı tanımını biraz açmak gerekirsek, php ile yazdığımız kodlar bir sunucuda yorumlanır ve bu yorumlama sonucu oluşan HTML çıktılar bir tarayıcı aracılığı ile gösterilir. Kısaca php kodlarımız sunucu tarafında işlenir ve kullanıcı bilgisayarında sadece HTML çıktıları görür.

Bu yorumlama işlemi yapılırken iki adet bileşen kullanırılır. Bir tanesi PHP yorumlayıcısı, diğeri ise internet sunucusudur. Apache, IIS, Lighttpd gibi uygulamalar internet sunucularından bir kaçıdır. Ben genelde az bellek tükettiği için Lighttpd tercih ediyorum. İleriki konularda Linux ve Windows üzerinde php ve bir web sunucusu kurulumunun nasıl yapıldığını anlatacağım.

Bu çalışma mantığını biraz daha açalım. Php ile yazdığınız kodlar önce sunucuya(apache,iis vb..) gönderilir, sunucu php kodu olarak algıladığı kodları (<?php ?> arasında yer alan kodlar) php yorumlayıcısına göndererek yorumlamasını ister. Php yorumlayıcısının yorumlayıp HTML olarka ürettiği çıktı tekrar sunucu aracılığı ile tarayıcıya iletilir. Aşağıda bu durmun resimli gösterimini görebilirsiniz.

[caption id=”attachment_580" align=”alignnone” width=”306"]

Php çalışma Prensibi[/caption]

Sunucu taraflı dillerin hepsi bu yapıya benzer bir prensip dahilinde çalışırlar. Buda aslında çalıştırılan her kodun sunucu bilgisayar üzerinde sistem kaynağı tüketmesine sebep olur. Bu yüzden yapacağımız uygulamaların bazı kısımlarında JavaScript gibi tarayıcı tarafından yorumlana bilen betikler kullanılır. Örneğin bir üyelik formunda ki alanları kontrol ettirirken php kullanmak sunucuyu çok yoracağından bu işlem ufak bir JavaScript kodu ile kullanıcı bilgisayarına yaptırılabilir.

Php bir çok özelliğe sahip bir dildir. Genel olarak php ile ilgili ayarlar php.ini dosyasında bulunmaktadır. Php.ini ile ilgili ayrıntıları ilgili konular geldiğinde parça parça anlatacağım.

Gelelim veri tabanı konusuna. Aslında veri tabanı konusu çok karmaşık değil. Şuan sadece yukarıda bahsettiğimiz sistem içerisine bir de veri tabanı sunucusu ekleyeceğiz. Bu cümleden çıkartılabileceği üzere veri tabanı bir sunucu olarak çalışır. Fakat bunun yanında, SQlite gibi bir dosya üzerinden sunucu olmadan çalışabilen veri tabanı sistemleri de mevcuttur.

Veri tabanlarını projelerimizde ürettiğimiz verileri tutmak için kullanırız. Veri tabanlarının yaptığı iş basit olarak veri kaydetmek, kaydedilmiş verileri istediğimiz kriterlere göre geri çağırmaktan ibarettir (tabi ki gelişmiş özellikleri de vardır). Veri tabanlarının kendilerine özgü sorgu dilleri mevcuttur ve en yaygın olarak kullanılan sorgu dili SQL dilidir. MySQL, MsSQL, SQLite gibi sistemler SQL dilini kullanırlar.

Genel olarak tüm programlama dilleri, veri tabanı sunucuları ile aynı mantıkta iletişim kurarlar. Php yorumlayıcısı sorguyu veri tabanı sunucusuna gönderir, veri tabanı sunucusu sorgu sonucununda döndürdüğü bilgiyi php yorumlayıcısına gönderir. Php yorumlayıcısı veri tabanı sunucusundan bilgiyi aldıktan sonra bu bilgiyi yine HTML çıktı olarak sunucuya gönderir ve tarayıcıda görüntülenmesi sağlanır. Bu noktada küçük bir bilgi vermek istiyorum. Php dilini komut satırı arayüzü (CLI-Command Line Interface-) arcılığı ile kullanabilirsiniz. CLI ortamında yazdığınız kodlar için bir web sunucusuna ihtiyaç duymayız. Fakat php genel olarak web programlama alanında kullanıldığı için ben de web programlamayı temel alarak anlatmaya çalışacağım.

Yukarıda bulunan grafiğe bir veri tabanı-php ilişkisi eklenmiş hali. Grafik ile çok daha net anlaşılacağını düşünüyorum.

[caption id=”attachment_585" align=”alignnone” width=”438"]

Php — Veri Tabanı İlişkisi[/caption]

Gelecek yazılar:
Php 2: Linux sistemler altında Php, Apache, MySQL ve PhpMyAdmin kurulumu
Php 3: Windows Xp sistemine Php, Apache, MySQL ve PhpMyAdmin kurulumu

--

--