|
Seri 1 - PHP 5 ve Platform Bağımsız Temel Web Programcılığı |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bir programlama
dilini öğrenme sırasında edindiğimiz deneyimler iletişim için kullandığımız
dilleri öğrenme sırasında edindiğimiz deneyimler ile nerdeyse aynıdır. İkisininde
belli kuralları vardır, kendilerini günceller, kişiden kişiye göre kullanımı
değişir ve en önemlisi zamanla daha iyi öğrenilir. Anahtarda burdadır zaten,
bir geliştirici öğrenme sürecinin bitmeyeceğini farkettiği zaman başarının kapısını
aralar.Tabi bunu bilemek sadece bir başlangıçtır; bu farkındalıktan faydalanmak
için en etkili yönetemi geliştirmek gerekmekte. Benim tercih ettiğim ve bir
kısmını bu seride bulabileceğiniz yöntemin bazı fazları bulunmakta.
Faz 1: (Dil
hakkında genel kültür edinilmesi.) Efendim bu dil nedir, nerde kullanılır, avantajları
dezavantajları nelerdir? Internet üzerinde yeterince kaynağı varmıdır ? Hatta
yapabiliyorsanız iş olanakları nedir, son zamanlarda ne tarz firmalar bu kategoride
ilan vermiş ? Örneğin devlet kurumlarında daha çok IBM ’in hüküm sürdüğü aşikardır
bu anlamda şuan JAVA devlet pozisyonlarında daha geçerlidir fakat özel sektörde
ibreler şuan daha çok .NET platformunu göstermekte. Peki PHP bu iki devin
arasında nerede ? Belki bu araştırmaları yaptıktan sonra PHP öğrenmekten vazgeçeceksiniz.
Bundandır ki ilerde daha çok vakit kaybetmemek veya pişman olmamak için bu adım
içerisinde yaptığınz araştırmalara özen göstermelisiniz. Bu konuda bir çok forumda
zaten tartışmalar süregelmekte ve devam edicektir; bunlardan da faydalanabilirsiniz
fakat buralardan kesin sonuç çıkarmak pek sağlıklı değil.
Faz 2: (Dil’in
çekirdeğinin öğrenilmesi.) Nedir dilin çekirdeği ? Esasında terim olarak biraz
yanlış ama tanıdık bir yaklaşım. Unix platformunda çoğu uygulamanın bir çekirdeği
bulunur bunlar uygulamanın hayati fonksiyonlarını içerir; ardından gelen diğer
fonksiyonlar uzantı olarak nitelendirilir. Çekirdek aynı zamanda dilin yapısınıda
içermektedir. Örnek olarak değişken tipleri ve bunlar için hazırlanmış temel
fonksiyonların veya mantıksal operatörlerin kullanımının öğrenilmesi. Bu öğrenme
süreci içerisinde belki arka plandaki çalışma prensipleride önemli olabilir,
burda eğer utopik bir yaklaşımda bulunacaksak çalışma prensipleri çok iyi öğrenilmeli.
Çünki vakti geldiğinde hata ayıklamak için daha büyük bir vakit kaybı ile çalışma
prensipleri kısmi olsada öğrenilmek zorunda kalınacak. Benim tavsiyem bu süreç
içerisinde dilin çekirdek yapısına hakim olunduktan sonra en azından çalışma
prensipleri hakkında genel bir fikir edinilmesi.
Faz 3: (Sürekli
Gelişim.) Artık yeni öğrendiğiniz dil ile uygulamalar geliştirebiliyorsunuz.
Peki ya yazılım esnasında uyguladığınız teknikler ne kadar verimli ? Okulda
öğrendiğiniz algoritmalar size yardımcı oluyor fakat pratik kullanımda geçerlimi
? Uygulamanızdan yüksek stress altında da aynı verimi alacağınızdan eminmisiniz
? Bu fazda uygulamalarımızın performansını geliştirmeye yönelmeliyiz ve yeni
teknikler öğrenmeliyiz. Tabiki sadece performans değil aynı zamanda geliştirdiğimiz
uygulamaların güvenlik yapısını nasıl geliştirebiliriz sürekli bunun arayışı
içerisinde olmalıyız. Tabiki dilin gelişimi bitmediğinden bir yandan da dil’deki
yenilikleri gözden geçirmeliyiz.
Okumakta olduğunuz
seride yukarda görmüş olduğunuz adımların hepsinden biraz bahsederken bunları
PHP5 ile bağdaştırıp elimden geldiğince güncel örnekler vermeye çalışacağım.
Açıkcası amacım bir kitap kadar yoğun içerik çıkarmak değil çünki bu okuması
çok sıkıcı hatta zaman zaman okurun dili bırakmasına sebep olabilen bir davranış;
keza ticari bir amaç da gütmediğimden olabildiğince anahtar noktaları size gösterip
daha çok bir kılavuz (yol gösteren) ortaya çıkarmak.
Web Programcılığı
ve PHP
Internet’in yagınlaşmaya
başladığı veya patladığı sene 1995 olarak belirtilir tabiki bundan önce internet
araçları üzerinde ARGE çalışmaları devam etmekteydi. Statik olarak hazırlnan
HTML web sayfaları insanları tatmin etmemeye başlar, çoğu kimsenin aklında kullanıcının
eylemlerinden etkilenen bir yapı oluşturma fikri vardır. Bunun için web uygulamaları
gerçekleştirilmelidir, burda ilk dişe dokunur adım linux üzerinde PERL için
hazırlanan CGI kütüphaneleri ile gözükür. PHP yaklaşımı itibari ile PERL’e çok
benzemektedir fakat CGI kütüphaneleri ile web uygulamaları oluşturmak gerçekten
kolay değildir. Bu esnada Apache web sunucusu geliştirme grubundan Rasmus Lerdorf
tarafından PHP (Personal Home Page) 1994 senesinde geliştirilir. İlk hedefi
kişisel sitesine gelen kullanıcıları takip etmektir; ardından PHP2 ile form
elemanlarının SQL cümleciklerine yerleştirilmesi ile PHP gelişimini sürdürür.
Zamanla PHP ’nin büyümesi sonucunda PHP geliştirme grubu kurulur burda iki isim
öne çıkar Zend Suraski ve Andi Gutmans.Bu iki kişi tarafından PHP3 ve PHP4 ’ün
etkili bir şekilde yorumlanıp çalışması için PHP içersine "Zend Engine"
(Zend Motoru) gömülür. Bu esnada Zend firması kurumsal anlamda PHP’ye destek
vermek ve geliştirici araçların hazırlanması için kurulur. PHP3 ve PHP4 içerisinde
bulunan Zend Engine ne yazık ki nesne yönelimli programlamaya (Object Oreinted
Programing "OOP") tam anlamıyla destek vermemekteydi ve geliştirilen
OOP tabanlı PHP uygulamalarıda ne yazık ki performans konusunda başarısız olmaktaydı.
Bunun üzerine Zend PHP5 için temel farklılığı oluşturan Zend Engine 2’yi OOP
’ye tam destek verecek şekilde tasarlayıp bugün önümüze sundu. Peki 1994 ile
2004 arasında başka web programlama dilleri yokmuydu? PHP’nin ardından microsoft
tarafından ASP sürüldü fakat hem performans konusunda hem kütüphaneleri konusunda
ASP çok vasat bir çizgide idi. Macromedia tarafında ise web programlama dili
olan coldfusion tutulmadı. Yahoo gibi işlemci ve trafik yükü ağır olan kurumlar
ise kendi (scripting) dillerini geliştirmeyi tercih ettiler fakat bugün Yahoo
tüm altyapısını Rasmus Lerdorf ’un danışmalığında PHP’ye geçirmeye çalışmakta.
Web programcılığı
sadece internet programcılığını içermemekte. Bugün bir çok kurum dahili ağlarında
geliştirecekleri uygulamalarını web programları ile çözümlemeye çalışıyor çünki
web uygulamaları kullanıcı tarafında çalışan uygulamalara nazaran uygulamanın
dağıtılması ve bakımı konularında çok daha avantajlı.
Neden PHP
?
- Kullanışlı
ve etkili
PHP bugüne kadar gördüğünüz öğrenilmesi ve yazılımı en kolay programlama dili.
C syntax’ı (yazılım biçimi) ile okuması, takip etmesi kolay aynı zamanda C
özelliklerini taşımasına rağmen C kadar katı kuralları olan bir dil değil.
Sürekli büyüyen kütüphanesinin her bilgi kaynağına erişemesi ile geliştirme
sürecini kısaltmakta. Aynı zamanda .NET, JAVA veya COM kütüphaneleri ile uyumlu
çalışıp, kaynaklarından faydalanabiliyorsunuz.
- Performanslı
PHP bugüne kadar görebileceğiniz en hızlı web programlama dili. Bugün PHP
’nin web uygulamalarında rakibi sanal makinalar olan .NET ve JAVA’dır. Sanal
makinalar kendileri için sistem kaynaklarını sömürürken uygulamanız arakada
çalışmak için can çekişir. Kaldı ki sanal makinaların iddası platform bağımsız
olmalarıdır ve zaten bu yüzden icad edilmiştir fakat PHP farklı bir yaklaşım
ile kaynakları en az kullanarak platform bağımsızlık konusunu çözümlemiştir.
Bildiğiniz üzere sanal makinalar ara derlenmeden geçmiş kodları bulunduğu
ortama göre son derlemeden geçirirler, bu şekilde platform bağımsız olurlar.
PHP ise her platform için PHP grubu tarafından uyumlu olacak şekilde geliştirilmiştir,
bu sayede arada bir sanal makinaya ihtiyaç duymaz. Ayrıca PHP’nin modüler
yapısı sayesinde kullanmayacağınız modülleri sistemden çıkarıp ortamı optimize
edebilirsiniz; bu ne yazık ki sanal makinalarda mevcut değildir. Bu yüzden
PHP herhangibi sanal makinadan defalarca daha performanslıdır.
- Güvenli ve
güncel
PHP grubu en az 2 ayda bir sürüm günceller. Bu güncellemeler varsa bugların
telafisini ayrıca yeni özellikleri ve optimizasyonları içermektedir. Bu sayede
en güvenli ve güncel programlama dilidir.
- Herşeyden
bağımsız (işletim sistemi, sunucu, veritabanı)
Daha evvel bir çok kere neden bir uygulamanın sunucudan , veritabanından veya
işletim sisteminden bağımsız olması gerektiğinin altını çizdim. Esasında anahtar
şu, eğer uygulamanız harici kaynaklardan bağımsız ise ister iş veren olun
ister geliştirici kaçınılmaz bir şekilde pazarınız genişliyor ve tercih sebebi
oluyorsunuz. .NET framework her ne kadar Microsoft tarafından platform bağımsız
olarak tanıtılsada bu Microsoft’un Windows’dan başka platformu tanımamasından
kaynaklanıyor; ama bugün web sunucuları tarafında bağımsız organizasyonların
yaptığı araştırma çoğunlukla Windows olmayan işletim sistemlerinin kullanıldığını
göstermekte.Tabiki bunda daha evvel bahsettiğimiz performans ve güvenlik
etkili olmakta.
- En başarılı
açık kod projesi
Bir çok açık kod projesi organizasyonel hatalar sonucu başarısız oluyor. Fakat
PHP hiç bi zaman bu tarz sorunlarla karşılaşmadı çünki arkasında Zend firması
var ve kurumsal bir çok ihtiyacı karşılıyor. Zend öylesine yabancı bir firma
değil, Zend PHP’yi geliştirenlerin firması bu sebepten PHP onların çocuğu
ve hiç bi zaman onu yalnız bırakmayacaklar.
Uyarı:
Dökümanda görüceğiniz çoğu açıklama ve örnek PHP, Smarty, PEAR ve GTK kullanma
kılavuzundan alınmıştır. Peki kılavuz yerine neden bu dökümanı okumalısınız
? Çünki kılavuz tecrübelerden ve kullanım tekniklerinden bahsetmez. Kılavuz
çok geniş içeriğe sahiptir yeni başlıyorsanız içerisinde kaybolma ve bunalma
ihtimaliniz var. Son olarakta ne yazık ki PHP kılavuzu Türkçe değil.
Serinin
İçeriği
- Giriş
- Çalışma Prensipleri
- Kurulumu ve
Konfigrasyon
- Geliştirme Ortamı
/ Zend Studio
- Yazılım Biçimi
- Değişiken Tipleri
- Nesne Özellikleri
(PHP5’deki yenilikleri arayanlar için)
- Operatörler
ve Döngüler
- Fonksiyonlar
- Diziler (Arrays)
ve Katarlar (Strings)
- Hata Ayıklama
(Debugging)
- Form İşlemleri
- Oturum Yönetimi
(Sessions & Cookies)
- Veritabanı Bağlantıları
(Veritabanı tiplerinden bağımsız uygulama geliştirmek)
- XML İşlemleri
- Web Servisleri
(PHP5’deki yeniliklerden biri daha)
- Grafik İşlemleri
(GD Kütüphaneleri)
- Harici Kütüphanelerin
Kullanılması
- Macromedia Flash
İşlemleri (Mind Kütüphaneleri)
- SMARTY (PHP
Arayüz motoru)
- PEAR (PHP kütüphanelerine
eklenti)
- GTK+ (PHP ile
görsel programlama)
Seriyi Hazırlayan
: Sadun Sevingen (C#nedir?com Mono Bölümü Editörü)
Makale:
Seri 1 - PHP 5 ve Platform Bağımsız Temel Web Programcılığı PHP ile Programlama Ahmet İpek
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|