PHP’nin farklı sürümleri
yaratılışından bu yana, orijinal sürümünden çok farklı olan birçok değişiklik geçirdi ve burada, PHP’nin bilmeye değer farklı sürümlerini gözden geçiriyoruz.
PHP 3.4
1997 yılında Lerdorf PHP dilini geliştirmeye başladı ve ikinci versiyonunu yarattı. İkinci versiyon birçok geliştiricinin dikkatini çekmeyi başardı. PHP işleme motoru yeniden yazıldı ve 1998’de bu yeniden yazma işlemi tamamlandı ve nihayet PHP’nin üçüncü sürümü yayınlandı ve diğer kullanıcıların kullanımına sunuldu.
Üçüncü versiyonun yayınlanmasından sonra PHP’ye yeni bir kavram verilmesine karar verildi ve bu nedenle PHP’nin iki orta harfi olan HP’yi Hypertext Preprocessor teriminin kısaltması olarak kabul ettiler. PHP, bilgileri ve verileri HTML‘yi kullanıcılara göstermeden önce işler, işler ve ardından HTML formatında gösterir. Hiper metin, resimlerin, tabloların vb. kullanılabileceği hiper metnin veya büyük ve uzun metinlerin çevirisini ifade eder; Başka bir deyişle, kullanıcının web sayfaları olarak gördüğü aynı HTML dosyasıdır.
PHP sürüm 4
o kadar popüler ve popüler hale geldi ki, her geçen gün çeşitli bölümlerinin geliştiricilerinin sayısı arttı ve yavaş yavaş PHP açık kaynaklı bir proje haline geldi.
Ancak geliştiriciler tarafından PHP’nin bir sonraki sürümü nasıl oluşturuldu? 2000 yılında Zeev Suraski adında bir kişi ve meslektaşı Andi Gutmans, Zend adında bir şirket kurdu ve profesyonel geliştiricilerden oluşan bir ekiple birlikte PHP programlama dilinde köklü değişiklikler yapmaya başladı.
Yapılan yeniden yazmalar, çekirdeği zend motoru olarak adlandırılan birçok değişiklik bıraktı ve PHP dilinin 4. sürümü sunuldu.
22 Mayıs 2000’de, yeni bir sürüm için programlama faaliyetlerinin yeniden başlatıldığının resmi olarak duyurulmasından yaklaşık 18 ay sonra, PHP 4.0 yayınlandı. Birçok kişi PHP 4 sürümünü bu dilin en tartışmalı sürümü olarak gördü ve internette duyuldu. Yayınlanmasından sadece birkaç ay sonra Netcraf, 3,6 milyondan fazla alanın, alanlarında PHP yüklü olduğunu tahmin eden bir rapor yayınladı.
birçok değişiklik içeriyordu. Bu sürümdeki değişiklikler aşağıdaki gibidir:
Kaynak yönetiminde iyileştirmeler:
3.x sürümleriyle ilgili ilk sorunlardan biri ölçeklenebilirlik eksikliğiydi. Bunun nedeni, bu dilin tasarımcılarının bu dilin hızlı gelişimini ve büyük programlarda kullanımını hafife almalarıydı. PHP dili orijinal olarak büyük siteler için tasarlanmamıştır ve dili bu amaçlarla kullanmaya olan ilgi, programcılarını dilin mekaniğinin çoğunu yeniden düşünmeye yöneltmiştir.
Nesneye Yönelik Destek:
Sürüm 4, bir dereceye kadar nesne yönelimi içeriyordu, ancak uygulama çoğunlukla beklentilerin altında kaldı ve hatta yetersiz bir şekilde uygulandı. Ancak buna rağmen yeni özellikler, nesne yönelimli diller (OOP) ile programlamaya alışmış kullanıcıları çekmede önemli bir rol oynadı. Standart sınıflar ve nesne yönelimli programlama yöntemleri kullanıma sunulurken, aşırı yükleme ve sınıf yürütme süresi bilgisi gibi özellikler de bu dile eklendi. Bölüm 6’da ayrıntılı olarak tartışacağımız bu dilin 5. sürümünde nesne yöneliminin daha eksiksiz bir sürümü uygulandı.
Oturum yönetimi desteği:
http oturum yönetimi, sürüm 4’te Newly’den programcılar tarafından entegre edilen PHPLIB paketi (http://phplib.sourceforge.net) aracılığıyla 3.x sürümünde kullanıcılara sağlandı. Bu özellik, programcılara, kullanıcıların aktivitelerini ve tercihlerini paralel olmayan, kullanışlı ve etkili bir şekilde takip edebilecekleri bir araç sağladı. Bölüm 18 bu yetenekleri tartışır.
Şifreleme:
MCrypt kitaplığı, kullanıcıların Blowfish, MD5, SHA1 ve TripleDES’i içeren şifreleme algoritmalarını kullanarak tam ve karma şifreleme gerçekleştirebilmeleri için bu sürüme varsayılan olarak dahil edilmiştir. Bölüm 21, bu PHP yeteneklerini ayrıntılı olarak ele almaktadır.
ISAPI desteği:
ISAPI desteği, kullanıcıların PHP’yi Microsoft’un IIS web sunucusuyla birlikte kullanmalarına olanak tanır. Bölüm 2’de PHP’yi hem IIS hem de Apache web sunucularına nasıl kuracağınızı göstereceğiz.
COM/DCOM desteği: PHP’nin bu sürümündeki Windows kullanıcıları için bir başka avantaj da COM nesnelerine erişme ve bunları somutlaştırma yeteneğidir. Bu özellik, Windows programları ile geniş bir etkileşim oluşturmuştur.
Java desteği:
PHP’ye güç veren bir diğer özellik de Java nesnelerini bir PHP programında paketleme desteğiydi. Bu özellik sürüm 4’te eklendi.
Perl Uyumlu Normal İfadeler Kitaplığı (PCRE):
Perl dili bir zamanlar dize işlemenin kralı olarak kabul edildi. PHP geliştiricileri, “düzenli ifade” işlevlerinin gücünün PHP’nin kabul edilmesinde önemli bir rol oynayacağını biliyorlardı. Sonuç olarak, Perl işlevlerini sıfırdan oluşturmak yerine PHP programına koymaya karar verdiler. Bu kararla PCRE kitaplık paketini varsayılan PHP paketine (sürüm 4.2.0) dahil ettiler. Bölüm 9 bunu ayrıntılı olarak tartışacak ve genellikle kafa karıştıran düzenli ifade komutlarına kısa bir giriş sağlayacaktır.
Bu özelliklere ek olarak, sürüm 4’te PHP’ye yüzlerce başka işlev eklenmiş ve bu da bu dilin yeteneklerinin artmasına neden olmuştur.
PHP 4, dilin olgunluğunda büyük bir atılımdı ve yeni özellikler getirdi. Ancak PHP geliştirme ekibi yerinde durmadı ve kısa süre sonra web komut dosyası dünyasında 800 kiloluk bir gorili uygulamak için başka bir büyük projeye başladı: PHP 5.
PHP sürüm 5
4’ün yayınlanmasından 4 yıl sonra, programlama dünyasında bir dönüm noktası olarak kabul edilebilecek, nesne yönelimli kodlama desteği ve veritabanı ile geliştirilmiş iletişim gibi temel değişiklikleri getiren yeni bir PHP sürümü sunuldu. PHP 5 sürümünde, kodlama sürecini programcılar için daha keyifli hale getiren özellikler ve olanaklar eklendi.
PHP’nin 5. sürümü, bu programlama dilinde bir başka büyük gelişmeydi. Önceki sürümler çok sayıda yeni eklenen kitaplık içermesine rağmen, sürüm 5 mevcut işlevlerde geliştirmeler içeriyordu ve dilin diğer gelişmiş programlama dili mimarileriyle iletişim kurmasını sağlayan birkaç özellik ekledi:
Nesne yönelimli özellikler büyük ölçüde geliştirildi:
PHP’deki nesne yönelimli yeteneklerin geliştirilmesi, sürümdeki en görünür özellikti. Sürüm 5, çok sayıda işlevin eklenmesini, yapıcılar ve yıkıcılar gibi işlevleri, nesne çoğaltmayı, sınıf soyutlamayı (Sınıf Soyutlama), kapsam değişkenlerini, arabirimleri ve PHP’nin nesneleri işleme biçimindeki iyileştirmeleri içeriyordu. 6. ve 7. Bölümler bu konulara giriş olacaktır.
dene/yakala hata yönetimi:
Organize programlama dillerinde manuel hata yönetimi yöntemi hataya açık ve zordur. Bu sorunun üstesinden gelmek için sürüm 5, hata işleme desteği ekledi. C++, C#, Python ve Java gibi birçok programlama dilinde hata işleme, hata raporlama mantığını standartlaştırmak için mükemmel bir araç sağlar. Bununla ilgili daha fazla bilgiyi Bölüm 8’de öğreneceğiz.
XML ve web hizmetleri için geliştirilmiş destek:
libxml2 kitaplığı kullanılarak XML desteği sağlandı ve XML okuma ve işleme için yeni ve nispeten gelecek vaat eden işlevler sağlandı. Bu yeni eklentinin adı SimpleXML. SOAP eklentisi de bu sürümle birlikte tanıtıldı. Bölüm 20’de, bir dizi başka web hizmeti eklentisiyle birlikte bu iki eklenti hakkında daha fazla bilgi edineceksiniz.
SQLite Desteği:
Gerçekten kritik olmayan bir özellik, ancak programcılar tüm bu özelliği, sunucu veritabanının SQLite adlı yoğunlaştırılmış bir sürümünü desteklemek için sağladılar. SQLite, bir veritabanı kullanmak isteyen ancak onu yönetmenin karmaşıklıkları ile uğraşmak istemeyen programcılar için basit bir çözüm sunar. PHP’nin bu güçlü veritabanı motoruna desteği Bölüm 22’de tartışılacaktır.
Not: PHP 5 sürümünde tanıtılan nesne yönelimli özelliklerin geliştirilmesi, bu programlama dilinin gücünün daha da artmasına neden oldu: bu özellikler, bu dil kullanılarak çerçevelerin oluşturulmasına izin verdi.
Sürüm 5’in yayınlanmasıyla birlikte PHP’nin popülaritesi tüm zamanların en yüksek seviyesine ulaştı. Netcraft raporlarına göre PHP yaklaşık 19 milyon alana kuruldu.PHP aynı zamanda tüm Apache sistemlerinin yaklaşık %54’üne kurulu olan en popüler Apache modülüydü. Bu istatistikler E-Soft’un raporlarına göre verilmektedir.
PHP sürüm 6
PHP sürekli olarak tenli hale getiriliyordu ve farklı versiyonları yayınlandı; PHP sürüm 6, Unicode’u destekleyebilmek ve aynı zamanda dünyanın tüm dillerinden karakterleri destekleyebilmek amacıyla oluşturuldu ancak bu özellik başarısız oldu ve bu sürümün geliştirilmesi durduruldu.
Bu yazının yazıldığı sırada PHP 6 beta aşamasındadır ve 2007’nin sonunda piyasaya sürülmesi planlanmaktadır. Bu sürümün büyük bir sürüm (sürüm 6) veya bir ara sürüm olması gerektiğine dair karar, birçok kişi tarafından tartışıldı ve bu sürümün birçok testçisi onu büyük bir sürüm olarak kabul ediyor gibi görünüyor, neden en az bir önemli özelliğin hangi sürümde yer alması gerekiyor? eklendi: Unicode desteği. Her durumda, programlama dünyasında “önemli değişiklik” terimi “önemli” ve “önemli” anlamına gelir ve bu nedenle bu sürüme eklenen diğer önemli özelliklerin göz ardı edilmesine izin verilmemelidir.
Aşağıda, bu sürümle birlikte gelen önemli değişikliklerin bir listesi bulunmaktadır:
Unicode desteği: Bu sürümde çok dilli uygulamalar oluşturmayı kolaylaştıran Unicode desteği eklenmiştir.
Güvenlik iyileştirmesi: Güvenlik geliştirmesi bu sürümde çok ilerleme kaydetti ve bu dilin hatası olmadığı, ancak deneyimsiz programcıların hatalarından kaynaklandığı söylenebilecek güvenlik hatalarını önemli ölçüde azalttı. Bu konular Bölüm 2’de tartışılacaktır.
Yeni dil özellikleri ve yapıları: En önemlileri 64-bit tamsayı değişkenleri, çok boyutlu diziler için yeni bir foreach yapısı ve kesmeler ve etiketler için destek olmak üzere bu sürüme bir dizi yeni komut özelliği eklenmiştir. Bu özelliklerden bazıları Bölüm 3’te tartışılacaktır.
PHP sürüm 7
PHP’nin birkaç tekrarı, yavaş yavaş olgun bir programlama dili gibi görünmesini sağladı. 2015 yılında piyasaya sürülen PHP sürüm 7, onu öne çıkaran bazı değişikliklere sahipti. PHP’nin yedinci sürümünde gördüğümüz değişiklikler arasında performans artışı, bellek kullanımını yaklaşık %50 oranında azaltma ve hız artışı vardı.
PHP sürüm 8
2019 yılının Aralık ayında, jit adlı bir özelliğin yerleştirildiği PHP programlama dilinin yeni bir sürümü yayınlandı. Bu yetenek, yazılan programların işleme ile aynı anda yürütülmesi anlamına gelir ve bu da bu programlama dilinin hızının artmasına ve kaynak kullanımının azalmasına neden olur; Tabii bunlar bu versiyonun bahsettiğimiz özelliklerinden sadece bir kaçı.