İnternet Tabanlı Programlama Dersi 2. Ünite Özet
Php’Ye Giriş
- Özet
- Sorularla Öğrenelim
Giriş
Tim Berners Lee tarafından ortaya çıkarılan Web teknolojisi, internetin işlevini önemli ölçüde genişletmiştir. HTML denilen bir işaretleme dili ile oldukça kolay bir şekilde oluşturulup yayınlanabilen sayfalar, biçimlendirilebilen metinlerin yanı sıra çoklu ortam öğelerini de barındırabiliyor olmalarıyla kullanışlı bir yapı sunmaktaydı. Bu yapı sayesinde henüz 1990 yılına gelinmeden, yüz bin bilgisayar tarafından Web sunumu yapılmaya başlandı. Söz konusu dönem için oldukça yüksek sayılabilecek olan bu sayı, Web teknolojisinin geleceğine ilişkin fikir vermeye başlamıştı. HTML üzerinde yapılan ve günümüzde de sürmekte olan iyileştirmeler, 1992 yılında bir milyon, 1995 yılında da on milyon Web sunucusuna ulaşılmasını sağladığında, Web’in önemi artık gözler önüne serilmişti. Her geçen gün yeni bir işlev kazanan Web sayfalarının günümüzde yüz milyonlarca Web sunucusu üzerinden yayınlanıyor olduğu tahmin edilmektedir.
Sunucu Taraflı Programlama Dilleri
Uzun bir süre statik olarak hizmet veren Web sayfalarının, kullanıcı etkileşimi anlamında iyileştirilmesine yönelik olarak ortaya çıkan sunucu taraflı programlama dilleri, aynı zamanda Web 2.0 olarak anılan teknolojinin temelini oluşturmuştur. Sunucu taraflı programlama dillerinin ortaya çıkması, Web içeriği oluşturan programların yazılmasını sağlayarak dinamik Web sayfalarına kapı açmıştır. Statik bir Web sayfası ziyaret edildiğinde Web sunucu yazılımı, ziyaret edilen sayfayı içeriğine bakmaksızın karşı tarafa göndermektedir. Sunucu taraflı dil ile kodlanmış olan ve dinamik olarak adlandırılabilecek bir Web sayfası ziyaret edildiğinde ise süreç farklı işlemektedir. Sunucu taraflı dil ile dinamik olarak oluşturulmuş bir Web sayfası ziyaret edildiğinde, Web sunucu yazılımı söz konusu sayfayı doğrudan istemciye göndermez. İstenen sayfa öncellikle sunucu üzerinde çalışan bir derleyici tarafından derlenir ve çalıştırılır. İstemciye gönderilecek olan içerik ise bu süreçte ortaya çıkar. İstemciye, derlenen sayfanın ürettiği içerik gönderilir. Derleme süreci sunucu üzerinde yapıldığı için istemci, sunucu taraflı kodları göremez.
Günümüzde, çalışma mantıkları büyük ölçüde birbirine benzeyen çok sayıda sunucu taraflı dil mevcuttur. Bu dillerin önde gelenlerinden birinin ise, PHP olduğu söylenebilir.
Çeşitli kaynaklara göre Personel Home Page ( Kişisel Ana Sayfa ) ifadesinin baş hareriyle isimlendirilmiş olan PHP’nin geliştirilmesi, Danimarka kökenli bir Kanadalı olan Rasmus Lerdorf’un 1995 yılında C dili üzerinden gerçekleştirdiği çalışmalarla başlamıştır. 1997 yılına kadar birinci ve ikinci sürümüyle yaygınlaşan PHP, 1997 yılında Zeev Suraski ve Andi Gutmans tarafından büyük ölçüde yeniden yazılmış ve üçüncü sürümüne kavuşmuştur. Bu sürümü itibariyle “PHP:Hypertext Preprocessor” olarak adlandırılan dilin dördüncü sürümü ise 2000 yılında yayınlanmıştır. Halen beşinci sürümüyle var olan PHP, tamamen ücretsiz bir şekilde kullanılmakla beraber hemen her sunucu tarafından destekleniyor olmasıyla, en yaygın sunucu taraflı dillerden biridir. Ayrıca PHP’nin güncel sürümü, kısmen de olsa nesne yönelimli programlamayı desteklemektedir. Sözü edilen özellikleri nedeniyle bazı geliştiriciler tarafından Web sayfası oluşturma görevinin dışına taşınarak, genel amaçlı bir programlama dili olarak da kullanılmaktadır.
PHP Destekli Web Sunucu Kurulumu
Günümüzde bilgi işlem kapasiteli hemen her cihazın kolayca bir Web sunucusu haline dönüştürülebilmesi mümkündür. Web sunumu yapmak için yüksek işlem gücüne ve belleğe sahip güçlü bilgisayarların kullanılması zorunlu değildir. Eğer çok yoğun bir ziyaretçi trafiği beklenmiyorsa, ortalama bir masaüstü bilgisayar, dizüstü bilgisayar, tablet hatta akıllı telefon olarak sınıflandırılan bir cep telefonu bile Web sunucusu haline getirilebilir. Bunun için üzerine bir Web sunucu yazılımının yüklenmesi yeterli olacaktır. Web sunucu yazılımını aktif olarak çalıştırmakta olan ve internet üzerinden ulaşılabilen bir cihazın bütün dünyaya Web yayını yapıyor olduğu söylenebilir.
İnternette en çok kullanılan Web sunucu yazılımının tamamen ücretsiz, hızlı çalışan ve esnek bir kullanım sunan Apache adlı yazılım olduğu söylenebilir. Şu an Web sunucularının yarısı, üzerlerinde Apache çalıştırmaktadır. Apache, Unix, Linux, Solaris, Windows, MacOS X ve OS/2 gibi yaygın işletim sistemlerinin hepsini desteklemektedir. www.apache.org adresi üzerinden en güncel sürümü indirilip kolayca kurulabilecek olsa da, Apache’nin tek başına dinamik bir Web sunumu yapması mümkün değildir. Çok gelişmiş bir HTTP sunucu olsa da Apache, yalnızca Web istemlerini kabul edip, istenen Web sayfalarını teslim etmekle sınırlı bir göreve sahiptir. Sunucu üzerinde PHP kodlarının derlenip çalıştırılması ise, Apache’den bağımsız olarak geliştirilmiş olan PHP derleyicisinin işidir.
Halihazırda Apache kurulu bir bilgisayara PHP derleyicisi kurmak, statik Web sayfası sunumuyla sınırlı becerilere sahip söz konusu bilgisayarın, dinamik Web sayfaları sunabilen bir Web sunucuya dönüşmesini sağlar. www.php.net adresi üzerinden ulaşılabilen PHP organizasyonu Web sayfası, PHP’nin hemen her işletim sistemine yönelik derlenebilecek kaynak kodlarını sunmaktadır. Aynı sitede, Windows işletim sistemi üzerinde çalıştırılabilecek dosyalar da yer almaktadır. Bu dosyaları indirip konumlandırdıktan sonra, Apache’nin konfigürasyon dosyaları, PHP uzantılı dosyaların bu derleyiciye yönlendirilmesi anlamında düzenlenmelidir. PHP sayfalarını destekleyen bir Web sunucunun üzerinde çalıştırması beklenen diğer bir uygulamanın veritabanı yönetim sistemi olduğu söylenebilir. Hemen her PHP Web projesinde kendini gösteren veri yönetim ihtiyacı, bu şekilde karşılanmış olacaktır. Bu noktada, küçük ve orta ölçekli
projelerde yıllardır kullanılmış olmasıyla kendini ispatlayan MySQL adlı veritabanı yönetim sisteminin kullanılması önerebilir. Her ne kadar ayrı ayrı edinilip kurulabilseler de Apache, PHP ve MySQL yazılımlarının iyi bir üçlü oluşturması, bu yazılımların üçü birden içeren yazılım paketlerinin ortaya çıkmasını sağlamıştır. Bu paketler sayesinde sunucu yazılımların ayrı ayrı kurulup birbirlerine göre yapılandırılması gibi görece zahmetli bir sürece de gerek kalmamaktadır. Sözü edilen Web sunucu paketlerinin en çok bilinenlerinden birinin Wamp adlı paket olduğu söylenebilir. Özellikle Windows işletim sistemleri için geliştirilmiş olan WampServer, www.wampserver.com adresinden ücretsiz olarak indirilebilir. WampServer kurulduğunda “www” adlı özel klasör, içinde birtakım dosyalarla birlikte gelir. Anlaşılacağı üzere bu dosyalar, silinene ya da değiştirilene kadar, Apache tarafından yayınlanan içeriği oluştururlar. Bu içerik, Web sunucu hakkında hem yazılım hem de donanım anlamında bilgiler sağlayan araçları sunmaktadır.
www klasöründe yer alan ve Apache tarafından sunulan içeriği görüntülemek için Web tarayıcıya sunucunun adresinin yazılması yeterlidir. Buradaki senaryoda, ziyaret edilecek Web sayfasının sunulduğu bilgisayar ile ziyaretin gerçekleştiği bilgisayar aynı olduğu için bir “kendi adresine ulaşma” durumu söz konusudur. “127.0.0.1” şeklindeki ip adresi ve “localhost” şeklindeki alanadı her zaman ve her platformda, kullanıldığı cihazın kendisini gösterir. Bu nedenle Web tarayıcının adres kısmına bu iki ifadeden biri yazılıp Apache tarafından sunulan Web içeriği ziyaret edilebilir.
Bu noktada, sunulan Web sayfalarına dışarıdan nasıl erişilebileceğine de değinmekte yarar olacaktır. Bir Web sunumuna başka bir bilgisayardan erişim sağlanmak isteniyorsa, Web tarayıcının adres satırına söz konusu sunucunun ip adresi veya alan adı girilmelidir. Windows tabanlı bir bilgisayarda ip adresini öğrenmenin en hızlı yolu, komut satırına ipconfig komutunu girmektir. Bu işlem aşağıdaki adımları takip edilerek gerçekleştirilebilir.
PHP’nin Temel Kodlama Özellikleri
PHP’de Değişken Kullanımı
PHP’nin sağladığı kodlama kolaylıklarından birisi de değişkenlerin kullanımı noktasındadır. Programlamada verilerin yazılacağı bellek hücrelerini temsil eden değişkenlerin oluşturulması, kullanılması veya dönüştürülmesi gibi işlemler, PHP’de oldukça kolaydır. Birçok programlama platformunda bulunan “değişken türü” tanımlaması, PHP’de üzerinde düşünülmesi gereken bir konu değildir. Kodlama sırasında istenen noktada “$” işareti kullanımı ile değişken oluşturulup, içine doğrudan herhangi bir tipteki değer yüklenebilir.
PHP’de Sabit Kullanımı
Adından anlaşılacağı üzere sabitler, sahip olduğu değeri değiştirmeyen yapılardır. Genellikle kodların başında tanımlanır ve kod boyunca isimleriyle çağrılarak kullanılırlar. Örneğin iletişim kurulacak bir veritabanının adresi, matematikteki pi sayısı, bir şeyin maksimum ya da minimum değeri sabitler üzerine atanabilir. PHP’de bu işlem için define ( ) adlı fonksiyon kullanılır.
PHP Kodlarına Yorum Satırlarının Eklenmesi
Özellikle PHP ile gerçekleştirilen büyük projelerde, kodların arasına yalnızca geliştiriciler tarafından görülebilecek notların alınması gerekmektedir. Yorum satırı olarak da anılan bu satırlar, birçok dilde olduğu gibi PHP tarafından da desteklenmektedir. PHP’de “//” işaretli bir satırda işaretin sağında kalan metin, geliştirici notu olarak değerlendirilir ve derleyici tarafından göz ardı edilir. Aşağıda sunulan kodun üçüncü satırı bunu örneklendirmektedir. Birden fazla yorum satırı eklemek istendiğinde, her satırın başına “//” işaretini koymak yerine “/*” işareti kullanılabilir. Derleyici, “/*” işareti ile “*/” işareti arasında kalan metnin tamamını göz ardı edecektir. Aşağıda sunulan kodun beş ile onuncu satırları arasında bu kullanım örneklendirilmektedir.
PHP’nin Yapılandırılması
PHP’nin birbirinden oldukça farklı sayılabilecek amaçlarla kullanılabiliyor olması, yapılandırma ayarlarının son derece esnek bir şekilde değiştirilebilmesinden kaynaklanmaktadır. PHP, Web ya da Web harici projeleri kapsayan pek çok amaca göre yapılandırılabilmektedir. Ayrıca PHP, var olan yapılandırmanın listelenmesini sağlayan “phpinfo ( )” adlı bir fonksiyon barındırır.
PHP’nin, phpinfo sayfası üzerinde görüntülenen yapılandırma ayarlarının değiştirilmesi için, yapılandırma dosyasına ulaşmak ve gerekli değişiklikleri yapmak yeterlidir. “php.ini” adıyla kayıtlı olan bu dosya, PHP’nin çalışma amacına göre özelleştirilebilmesi açısından oldukça önemlidir. Sunucu üzerinde yapılabilecek basit bir aramayla ulaşılabilecek olan “php.ini” dosyasına, görev çubuğunda yer alan WampServer ikonu üzerinden de ulaşılabilir.
Yapılandırma dosyasında değişiklikler yapılarak PHP’ye ilişkin yüzlerce özellik değiştirilebilir. PHP kodlarının başladığını ve bittiğini belirtmek üzere “ ” etiketleri kullanılmaktadır. php.ini adlı dosyaya yer alacak “short_open_tag = On” ifadesi, “ ” etiketinin de PHP kodlarının başlangıcını belirtmesini sağlayacaktır. Bu ifadede yer alan “On” değerinin “Off” olarak değiştirilmesi ise, anlaşılacağı üzere “
PHP derleyicisinin derlediği kodları çalıştırma anlamındaki zaman sınırı da php.ini dosyası üzerinden değiştirilebilir. Bunun için “max_execution_time” ifadesinin değeri değiştirilmelidir. Bu ifadenin karşısında yazan değer, saniye cinsinden maksimum çalışma süresini ifade eder. Örneğin “max_execution_time=60” şeklindeki kullanım, derlenmiş bir PHP kodunun en fazla 60 saniye çalışmasını sağlar. Söz konusu sürenin dolması durumunda, kod kendi çalışmasını henüz sonlandırmamış bile olsa, sistem tarafından sonlandırılır.
PHP tarafından verilen hata mesajlarına ilişkin yapılandırma için en sık kullanılan değişken “error_reporting” adlı olanıdır. Bu değişkenin karşısına yazılan ifade, PHP derleyicisinin derleme sırasında oluşturduğu hataların, uyarıların ya da bildirimlerin görüntülenme durumunu değiştirecektir. Örneğin “error_reporting = E_ALL” şeklindeki kullanım hata, uyarı ve bildirimlerin görüntülenmesini sağlar. “error_reporting= E_ALL & ~E_NOTICE” şeklindeki kullanım ise, bildirimlerin ( notice ) dışındaki mesajların, yani yalnızca hata ve uyarıların görüntülenmesini sağlar.
“file_uploads” değişkeninin karşısına yazılacak “On” değeri, PHP ile sunucuya dosya yükleme olanağı sağlanmış olur. Söz konusu değişkenin “Off” değerini alması ise, PHP ile dosya alımının engellenmiş olması anlamına gelir.