PHP Nedir PHP şu şekilde tanımlanabilir: Sunucu tabanlı , HTML ile bir arada kullanılabilen , Script dili. PHP'nin gelişim süreci: PHP-FI PHP-3. x PHP-4. x Çalışma Modeli Veri tabanı sistemi ile evrensel ve hafif istemciler arasında yer alır. Hem HTML üretimi, hem de uygulama mantığı PHP motoru üzerinde gerçekleşir. Genel olarak Web tarafı ağır basan üç katmanlı yapıyı esas alır. Hazır araçlar. PHP'nin fonksiyon kütüphanesi oldukça geniş. 4.0 versiyonunda 1729 fonksiyon tanımlı. Mail, FTP, LDAP ve HTTP gibi protokollerini kullanabilmek için RFC okumanıza gerek yok. Veritabanlarına erişim fonksiyonları işi kolaylaştırmış. Allaire firmasının Cold Fusion ürününde kullanılan CFML script dili kısa ve okunurluğu iyi olmasına karşın sadece 60 tag ve 200 fonksiyon ile sınırlanmış. Aynı şekilde ASP ile hazır gelen araçlar da oldukça sınırlı. Okunurluk. PHP kodunun okunurluğu oldukça yüksek. Kısa olmalarına karşın Perl kodları uzman olmayan programcılar tarafından kolay okunamıyor. Tam tersine kodlama gereksinimi fazla olan java servletlerinde de geliştiricilerin birbirini miras alan sınıfları takip ederken kaybolması muhtemeldir. Ekibiniz her zaman perl veya java uzmanı programcılardan oluşmayabilir. Modülerlik. PHP'nin include ve requires gibi fonksiyonları kodunuzu küçük ve mantıklı parçalara ayırmanıza yardım ediyor. Nesneye yönelik programlama teknikleriyle de modülerliği artırabilirsiniz. Tüm Linux, Unix ve BSD türevleri § MS Windows95-98-2000Prof/Server § OS/2 § Uyumluluk PHP, çok sayıda açık sistem ve protokol ile birlikte çalışabildiği gibi hem de pek çok özelleşmiş sistem için yerleşik arabirim desteği sunmakta. Açık Sistem Protokolleri HTTP/HTTPS § FTP § LDAP § SMTP § IMAP, POP3 § NNTP § SNMP § Socket Arabirimi Yerleşik Veri Tabanı Arabirimleri MySQL § mSQL § PostgresSQL § BerkeleyDB § MS-SQL § Interbase § Oracle § Sybase § DB/2 Açık Sistem Teknolojiler ODBC § OpenSSL / X509 Sertifikaları § XML § PDF Performans 8 saniye kuralı. Web'de ziyaretçiler genellikle yüklenmesi 8 saniyeyi geçen sayfalardan vazgeçerler. Buna karşın çoğu kez bant genişliğiniz sınırlıdır. Toplam 35KB büyüklüğünde olan bir sayfa 56Kbps'lik bir modemle 7-8 saniyede çekilir. Bu süreye sunucu cevap süresi eklenecektir. Cevap süresi . Normalde web sunucusu dinamik bir sayfada script işletimi bitene kadar cevap göndermez. Bu sürenin de 1-2 saniyeyi aşmaması zorunludur. CGI kullanan uygulamalar işletim sistemi tarafından görevlerin paralel olarak hafızaya yüklenmesi ve bunlar arasında geçişler gerektirdiği için CPU, RAM, zaman harcaması fazladır ve tutarsız davranırlar. Her seferinde yeniden veri tabanına bağlantı gerektirirler. Server API'si kullanan modüller ise CGI'ya göre 15-20 kat hızlı çalışabilirler. PHP'nin SAPI kullanan modül versiyonu da bu avantajdan yararlanır. Zend optimizer ile ara kod iyileştirmesi kullanılarak buna ek olarak %40 - %100 hızlanma elde edilebilir. Yerleşik veritabanı desteği verdiği için ODBC kullanan sistemlere göre de hızlıdır. Sürekli veritabanı bağlantıları . Java servletlerindeki connection pooling mantığını programcıya saydam tutarak kullanır. PHP standart görevler için ASP'de olduğu gibi COM nesneleriyle iletişim kurmak zorunda kalmaz. Bu tür işlevler sunucunun kendi hafıza alanı içinden çağrılır. Önbellekleme. Zend Cache ve benzeri yazılımlar ile scriptler derlenmiş olarak hafızada tutulabilir. Hızlı Gelişim ve Yaygınlık Dünya üzerinde PHP kullanan domain sayısı 5.747.237, IP adresi sayısı ise 882.439 . Apache üzerinde en yaygın kullanılan modül . Module Mar 2001Count Mar 2001% Feb 2001Count Feb 2001% Growth% PHP 588124 38.68% 562725 37.82% 2.28% FrontPage 289505 19.04% 285097 19.16% -0.63% mod_ssl 194166 12.77% 178694 12.01% 6.33% perl 186722 12.28% 178713 12.01% 2.24% OpenSSL 179255 11.79% 163540 10.99% 7.26% ApacheJServ 63655 4.19% 61918 4.16% 0.60% Ekonomik Tüm eklentileri ile birlikte ücretsiz. Gelişmiş Özellikler Değişebilir Değişkenler Kurallı İfadeler Semafor ve Shared Memory Yerleşik Oturum Desteği Çıktı Yastıklama Serialization Java Desteği Windows COM Desteği XML ve SOAP Desteği Şifreleme ve OpenSSL echo $ ; // ekrana 'armut' yazar echo $elma; // ekrana 'armut' yazar Aynı özellik fonksiyonlar için de kullanılabiliyor: if $funct="ImageCreateFromPNG"; else $funct="ImageCreateFromJPEG"; $funct ; // Çağrılacak fonksiyonu çalışma anında belirledik Kurallı İfadeler PHP kurallı ifadeleri Perl kadar güçlü kullanabilir. Örneğin bir metindeki tüm 'elma' ları 'armut' yapabilirsiniz: $metin = preg_replace ; Aynı sonucu java servleti kullanarak almak isteserseniz: String str1 = new String("elma"; String str2 = new String("armut"; int x = metin. indexOf(str1); while(x!= -1) { metin = new String(data. substring(0, x) + str2 + metin. substring(x + str1. length ; x = metin. indexOf(str1); § Uygulamanızda kullandığınız değişkenleri yapısallığını bozmadan dosyada, veritabanında, paylaşılabilir hafızada veya cookie olarak tarayıcıda saklayabilirsiniz. § Aynı veya farklı PHP uygulamaları arasında kolayca veri aktarabilirsiniz. Java Desteği § PHP ile Java'da hazırlanmış programları kullanabilirsiniz. § API arabirimini bildiğiniz sürece javada yazılmış bir programın sınıflarına PHP içinden erişebilir ve PHP ile yaratılmış gibi kullanabilirsiniz. public class Hello { public Hello public String HelloStr { return "Merhaba " + name; Yukarıdaki java sınıfını derledikten sonra aşağıdaki gibi PHP scripti içinden kullanabiliyoruz: $myHello=new Java("Hello"; echo $myHello->HelloStr("Mustafa"; ?> § PHP-Java ikilisini kullanarak RMI ve CORBA kullanan dağıtık uygulamalar geliştirmeniz de mümkün hale gelmiş oluyor. Windows COM Desteği § PHP içinden Windows ortamında COM arabirimi olan nesnelere erişip normal PHP nesneleri üzerinde çalışıyormuş gibi kullanabilirsiniz. <? $word = new COM("word. application" or die ("word başlatılamadı"; $word->Visible=1; $word->Documents->Add ; $word->Selection->TypeText("Deneme..."; $word->Documents ->SaveAs("deneme. doc"; $word->Quit; ?> § Örneğin Excel veya Word dökümanları üzerinde çalışabilir, Access veritabanlarına erişebilirsiniz. § COM ve DCOM arabirimi kullanan tüm Windows uygulamalarını kullanabilirsiniz XML, XLST Desteği § XML büyük veri yığınları ile uğraşma ve uygulamalar arası veri aktarımı gibi konularda önümüzdeki günlerde daha çok duyacağımız bir teknoloji. § PHP ile XML dökümanlarını çözümletebilirsiniz. XML kullanarak konu bazlı arama araçları tasarlanabilir. § XLST ve XML kullanarak, sunum bilgisi içermeyen XML dökümanlarınızın görünümünü esnek bir şekilde belirleyebilirsiniz. Bu web sitelerinde içerik ve sunumu birbirinden ayırmak için uygun bir altyapı sağlar. § XML-RPC türü uygulamalar geliştirebilirsiniz. Bu sayede dağıtık uygulamalar birbiriyle standart bir şekilde haberleşebilir. Şifreleme ve OpenSSL § PHP ile tek yönlü şifreleme ve özet üretme fonksiyonları kullanabilirsiniz (MD5, Crypt, ... ) § PHP simetrik çalışan pek çok şifreleme algoritmalarını da destekliyor (DES, DES3, Blowfish, IDEA, ...) § PHP 4.0 versiyonunda OpenSSL'i de dahil ederek asimetrik şifreleme metodlarını da destekliyor. § Bu bağlamda X509 sertifikalarını da kullanabilirsiniz. § Böylece uzak noktalar arasında güvenli veri aktarımı gerçekleştirebilirsiniz Ulakbim'de PHP § Site genelinde statik sayfalar için PHP ön işleyicisi . § WebManager § Ulusal Belge Sağlama Projesi § Süreli Yayınlar Projesi ve diğerleri PHP Ön İşleyicisi § Ulakbim sitesinde içerik ve görünümün birbirinden ayrılabilmesi, § Site genelinde, tek bir noktadan yönetilebilecek tutarlı bir görünüm elde etmek için geliştirildi. § Bunu yapabilmek için statik sayfalarda SSI benzeri kendimize özel taglar tanımladık. § Alt yapı olarak Apache sunucusu üzerinde, DSO modülü olarak yüklü PHP kullandık. Aynı makinada MySQL veritabanı sunucusu da bulunmakta ve herhangibir performans kaybı söz konusu olmamaktadır. § Sonuçta tüm Ulakbim sitesi arka tarafta dinamik olarak üretilmektedir. § Ayrıntılı bilgi için: http://www.ulakbim.gov.tr/hakkimizda/site/ § Kodlama aşaması az sayıda programcı tarfından 3 ay gibi bir sürede tamamlandı. § MySQL veritabanı kullanmakta ve veri güvenliği için her gün replication yapılıyor. § Internete açık tarafında müşteri modülü, § Intranet'imize bakan tarafında ise belge sağlama hizmeti veren görevliler için modül içeriyor. § Katalog taramalarında da PHP kullanılıyor. § Yakında güvenli bağlantı kullanarak kredi kartı ile ödeme kabul eder hale getirilecek. Bu kısımda yine PHP-Perl ikilisi kullanılıyor. § Ayrıntılı bilgi: Süreli Yayınlar Projesi ve Diğerleri § Süreli Yayınlar Projesi, Ulakbim tarafından ısmarlanan süreli yayınların takibi için kütüphane otomasyon uygulamasıdır. Proje, kütüphane otomasyonu projesinden öteye götürülebilecek şekilde oluşturulmaya çalışılıyor. Henüz geliştirme aşamasında. § Ulakbim forumları için kullanıcı yönetim modülleri. Ücretsiz dağıtılan Phorum yazılımına bir eklenti olarak geliştirildi. Ulakbim'in kurumsal kullanıcılarıyla çalışma grupları çerçevesinde yakın çalışabilmesi için tasarlandı. Sadece üye kullanıcıların erişmesi sağlanıyor. Intranet tarafında moderatörler için yönetim ekranlarına da sahip. Kullanılıyor.