Neden PHP? PHP 5 ve Platform Bağımsız Temel Web Programcılığı 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: 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: 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: 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 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 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 &quot;Zend Engine&quot; 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 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 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? 1. Kullanışlı ve etkili PHP bugüne kadar gördüğünüz öğrenilmesi ve yazılımı en kolay programlama dili. C syntax'ı 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. 2. 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. 3. 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. 4. Herşeyden bağımsız 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. 5. 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. alıntıdır Kaynak: Kemal Çınar Bilgisayar Dershanesi