PHP Nedir?

PHP: Hypertext Preprocessor, web uygulamaları geliştirme için tasarlanmış bir sunucu tarafı komut dosyası dilidir. İlk olarak 1994 yılında Rasmus Lerdorf tarafından oluşturulmuştur; PHP şimdi PHP Grubu tarafından geliştirilmeye devam etmektedir. PHP ilk başta personal home page yani kişisel web sayfası ismi ile ve bu amaçla oluşturuldu, daha sonra bu dil geliştirilerek hypertext preprocessor olarak ismi değiştirildi.

PHP kodu HTML içerisine gömülü olarak çalışabilir ya da PHP içerisinde HTML kod kullanarak çalışabilmektedir. HTML web tarayıcısı tarafında yorumlanan metin dilidir, PHP ise sunucu tarafında çalışan yazılım dilidir. PHP sunucuda kurulu olan PHP yorumlayıcısı tarafından çalıştırılır, ayrıca komut satırı üzerinden de (CLI) çalıştırılabilme imkanı da bulunmaktadır.

PHP, Zend Engine tarafından desteklenen ve PHP lisansı altında yayınlanan ücretsiz bir yazılımdır. Bir çok platformda ve web sunucusunda PHP desteği bulunmaktadır.

PHP 2014 yılına kadar yazılı bir şartname ya da standart olmadan geliştirildi. 2014 yılından beridir resmi bir PHP özelliği oluşturma çalışmaları devam etmektedir.

Rasmus Lerdorf - PHPRasmus Lerdorf

PHP'nin Tarihçesi

PHP 1994 yılında Rasmus Lerdorf'un kişisel web sayfasını kurmak için hazırladığı ortak ağ geçidi arabirimi (CGI - Common Gateway Interface) programıyla başladı. Yazdığı programı web formlarıyla ve veritabanıyla iletişim kurmaya kadar genişletti ve bu uygulamaya "Personel Home Page/Forms Interpreter (PHP /FI)" adını verdi.

PHP / FI basit, dinamik web uygulamaları oluşturmak için kullanılabilir. Hata raporlamayı hızlandırmak ve kodu iyileştirmek için, Lerdorf başlangıçta 8 Haziran 1995 tarihinde comp.infosystems.www.authoring.cgi Usenet tartışma grubundaki PHP / FI'nın "Personal Home Page Tools (PHP Tools) version 1.0" olarak yayınlandığını duyurdu. Bu sürüm zaten PHP'nin bugün sahip olduğu temel işlevselliğe sahipti. Buna Perl benzeri değişkenler, form yönetimi ve HTML yerleştirme yeteneği de dahil. Sözdizimi Perl'e benziyordu, ama daha basit, daha sınırlı ve daha az tutarlıydı. (İlk PHP sürümü - 1.0)

PHP'nin yeni bir programlama dili olması amaçlanmadı ve organik olarak büyüdü. Lerdorf geçmişe baktığında şöyle belirtti: "Nasıl duracağımı bilmiyordum, hiçbir zaman bir programlama dili yazmak niyetinde değildim, bir programlama dilinin nasıl yazılacağı hakkında hiçbir fikrim yoktu, sadece yolda bir sonraki mantıklı adımı eklemeye devam ettim.". Bir geliştirme ekibi kurulmaya başlandı ve aylarca süren çalışma ve beta testlerinden sonra resmen 1997 yılının Kasım ayında PHP / FI 2 yayınladı. (İkinci PHP Sürümü - 2.0)

PHP 3 ve 4

Zeev Suraski ve Andi Gutmans, 1997'de yorumlayıcıyı yeniden yazdılar ve dilin adını PHP: Hypertext Preprocessor olarak değiştirerek PHP 3'ün temelini oluşturdular. Daha sonra, PHP 3'ün halka açık testi başladı ve resmi lansman Haziran 1998’de geldi. Suraski ve Gutmans, daha sonra 1999’da Zend Engine’i üreten PHP’nin çekirdeğini yeniden yazmaya başladı. Ayrıca, İsrail’deki Ramat Gan’da Zend Technologies’i kurdular.

22 Mayıs 2000'de Zend Engine 1.0 tarafından desteklenen PHP 4 piyasaya sürüldü. Ağustos 2008 itibariyle bu sürüm 4.4.9 versiyonuna ulaşmıştır. PHP 4 artık geliştirilme aşamasında değildir ve güvenlik güncelleştirmeleri de yayınlanmamaktadır.

PHP 5

14 Temmuz 2004 tarihinde, yeni Zend Engine II tarafından desteklenen PHP 5 piyasaya sürüldü. PHP 5, nesne yönelimli programlama için geliştirilmiş destek, PHP Veri Nesneleri (PDO) uzantısı (veritabanlarına erişmek için hafif ve tutarlı bir arayüz tanımlayan) ve sayısız performans geliştirmesi gibi yeni özellikler içeriyordu. 2008'de PHP 5, geliştirilmekte olan tek kararlı sürüm oldu.

Birçok yüksek profilli açık kaynaklı proje, PHP 4'ten PHP 5'e geçişi destekleyen PHP geliştiricileri konsorsiyumu tarafından sağlanan GoPHP5 girişimi sayesinde 5 Şubat 2008 itibariyle PHP 4'ü yeni kodda desteklemeyi bıraktı.

Resmi olarak PHP 5.6 sürümünün desteği 31 Aralık 2018 tarihiyle birlikte sonlandı ancak Debian 8.0 Jessie işletim sistemi için Haziran 2020 yılına kadar destek verilmeye devam edilecek.

PHP 6

PHP, ana dil düzeyinde yerel Unicode desteği bulunmadığı için bir çok eleştiri aldı. 2005 yılında, Andrei Zmievski'nin öncülüğünde, Unicode Uluslararası Bileşenleri (ICU) kütüphanesini içine yerleştirerek ve metin dizelerini dahili olarak UTF-16 olarak temsil ederek PHP'ye yerel Unicode desteği sağlamak için bir proje başlatıldı. Bu, hem dilin içindekilerinde hem de kullanıcı kodunda büyük değişikliklere neden olacağından, bu dili geliştirme aşamasında olan diğer önemli özelliklerle birlikte dilin 6.0 sürümü olarak yayınlaması planlandı.

Bununla birlikte, gerekli değişiklikleri anlayan geliştiricilerin yetersizliği ve nadiren web bağlamında kullanılan UTF-16'ya dönüşümden kaynaklanan performans sorunları projede gecikmelere yol açmıştır. Sonuç olarak, 2009'da bir PHP 5.3 sürümü oluşturulmuş ve Unicode olmayan birçok özellik PHP 6'dan, özellikle de isim alanlarından (namespaces) geri yüklenmiştir. Mart 2010'da, proje mevcut haliyle resmen iptal edildi ve PHP 6'dan Unicode'a ait olmayan, traits ve kclosure re-binding gibi en fazla kalan özelliğini içeren bir PHP 5.4 sürümü hazırlandı. İlk umutlar, Unicode entegrasyonu için yeni bir plan oluşturulacaktı, ancak 2014 itibariyle hiçbiri kabul edilmedi.

PHP 7

2014 ve 2015 yıllarında PHP 7 olarak adlandırılan yeni bir büyük PHP sürümü geliştirilmiştir. Bu sürümün numaralandırılması bazı tartışmalar içermektedir. PHP 6 Unicode deneyi hiç yayımlanmadıysa da, birkaç makale ve kitap başlığı PHP 6 adını referans alıyordu; bu, yeni sürümün adı tekrar kullanması durumunda karışıklığa neden olabilirdi. Oylamadan sonra PHP 7 isminde karar kılındı .

PHP'nin temeli, aslında yeni nesil PHP (phpng) olarak adlandırılan bir PHP dalıdır. Dmitry Stogov, Xinchen Hui ve Nikita Popov tarafından yazılmıştır ve neredeyse tüm dil uyumluluğunu koruyarak Zend Engine'i yeniden aktive ederek PHP performansını optimize etmeyi amaçlamıştır. 14 Temmuz 2014 itibariyle, phpng projesinin temel standardı olarak hizmet veren WordPress tabanlı siteler, performansta neredeyse %100 artış gösterdi. Ayrıca, phpng'daki değişikliklerin gelecekteki performansın artmasını kolaylaştırması beklenmektedir, çünkü daha kompakt veri yapıları ve diğer değişikliklerin just-in-time derleyiciye başarılı bir geçiş için daha uygun olduğu düşünülmektedir. Önemli değişikliklerden dolayı yeniden derlenen Zend Engine yeni ismiyle Zend Engine 3, PHP 5'te kullanılan Zend Engine 2'den daha başarılıdır.

PHP 7 ile birlikte gelen değişiklikler aşağıdaki gibi:

  • Birçok eski PHP hata mekanizması, modern nesne yönelimli istisnalar ile değiştirildi
  • Değişken dereferencing sözdizimi dahili olarak daha tutarlı ve eksiksiz olması için elden geçirildi. ->, [], (), {} ve :: operatörlerinin kullanımına izin verildi
  • Eski PHP 4 tarzı yapıların desteği kaldırıldı
  • Foreach ifadesinin davranışı daha öngörülebilir hale getirildi
  • PHP'ye yerleşik birkaç hata için constructorlar başarısız olduklarında boş hata mesajı dönmektedirler, uyumluluk yerine istisna oluşturmak için değiştirildiler
  • Birçok kullanım dışı  sunucu uygulaması programlama arabirimi (SAPI) ve uzantıları PHP çekirdeğinden kaldırıldı, özellikle klasik mysql eklentisi
  • Dizelerin desteğini kaldırmak için list () işlecinin davranışı değiştirildi
  • Switch ifadesinin birden fazla varsayılan cümlecik olmasına izin veren bir denetim düzeltildi
  • Dizelerden sayı türlerine kadar bazı örtülü dönüşümlerde onaltılık sayı desteği kaldırıldı
  • Sola kaydırma ve sağa kaydırma operatörleri, platformlar arasında daha tutarlı davranacak şekilde değiştirildi
  • Tam sayılarla float türündeki sayıları arasındaki dönüşümler sıkılaştırıldı ve platformlar arasında daha tutarlı bir şekilde uygulandı

 


 

Sürüm Yayın Tarihi Destek Alacağı Son Tarih Notlar
1.0 8 Haziran 1995   "Personal Home Page Tools(Kişisel Anasayfa Araçları)". olarak anılıyordu ve kısaltımı "PHP" idi.
2.0 1 Kasım1997   Resmen "PHP / FI 2.0" olarak adlandırıldı. Bu aslında PHP olarak nitelendirilebilecek ilk sürümdür.
3.0 6 Haziran 1998 20 Ekim 2000 Sürüm kişisellikten, kurumsallığa geçti. Zeev Suraski ve Andi Gutmans tekrar basit dil bilgisini yazdı.
4.0 22 Mayıs 2000 23 Haziran 2001 Daha ileri seviye dil bilgisi eklendi/Zend Motoru denilen dil bilgisi denetleyicisi getirildi.
4.1 10 Aralık 2001 12 Mart 2002 'Süper globaller' tanıtıldı. ($_GET$_POST$_SESSION$_SERVER vb...)
4.2 22 Nisan 2002 6 Eylül 2002 register_globals öntanımlı olarak engellendi.
4.3 27 Aralık 2002 31 Mart 2005 CLI tanıtıldı ,CGI ekleri yapıldı.
4.4 11 Temmuz 2005 7 Ağustos 2008 PHP sürüm 4.3.x'e karşı derlenen uzantılarla ikili uyumluluğun kırılmasını gerektiren bir bellek bozulması hatası düzeltildi.
5.0 13 Temmuz 2004 5 Eylül 2005 Zend Motoru II ile yeni obje modelleri geliştirildi.
5.1 24 Kasım 2005 24 Ağustos 2006 Eklenen değişkenler ile performans artışı gözlemlendi. Veritabanlarına erişmek için tutarlı bir arabirim olarak PHP Veri Nesneleri (PDO) eklendi.
5.2 2 Kasım 2006 6 Ocak 2011 Filtre uzantısını varsayılan olarak etkinleştirdi. Native JSON desteği eklendi.
5.3 30 Haziran 2009 14 Ağustos 2014 Namespace desteği, Atlama kodları (goto ile limitlendi), Yerli PHP arşivlemesi (phar),Windows desteği arttırıldı, sqlite3 geliştirildi, fileinfo, mime_magic yerine daha iyi bir MIME desteği için getirildi, uluslararası olarak "ereg" kod yapısı iptal edildi.
5.4 1 Mart 2012 3 Eylül 2015 Trait desteği geldi, diziler için kısa sözdizimi desteği geldi. Register_globals, safe_mode, allow_call_time_pass_reference konfigürasyon değerleri session_register(), session_unregister() ve session_is_registered() metotları ile birlikte kaldırıldı. Dahili web sunucu desteği eklendi. Bellek kullanımı düşürüldü, mevcut fonksiyonelite üzerinde performansı artıran çok sayıda iyileştirme yapıldı.
5.5 20 Haziran 2013 10 July 2016 Support for generators, finally blocks for exceptions handling, OpCache (based on Zend Optimizer+) bundled in official distribution.
5.6 28 Ağustos 2014 31 Aralık 2018 Yeni makine kodu önbellekleme eklentisi (Zend Optimizer+) geldi. GD resim işleme kütüphanesine yeni fonksiyonlar eklendi. Parola şifreleme işlemlerini kolaylaştırmak ve daha üst seviyede güvenlik sunmak üzere password_hash() ve password_verify() metotları geldi. try {} catch() {} sözdizimine diğer üst seviye dillerde bulunan finally bloğu eklendi.
6.x Yayınlanmadı   Yerel Unicode desteğinin eklenmesi planlanan PHP'nin iptal edilmiş sürümü.
7.0 3 Aralık 2015 3 Aralık 2018 Zend Engine 3.0 ile önceki sürümlere göre performansı önemli derecede arttırıldı. ?? Operatörü,  üç yollu karşılaştırma operatörü ve anonymous sınıflar eklendi. Unicode desteği geldi.
7.1 1 Aralık 2016 1 Aralık 2019 Void tipi eklendi, sınıf sabitlerini (const) kapsülleme, boşaltılabilir (nullable) tip, birden fazla hata (exception handling) yakalayabilme
7.2 30 Kasım 2017 30 Kasım 2020 Object tipi eklendi, abstract metodlar artık override edilebiliyor.
7.3 6 Aralık 2018 6 Aralık 2021
  • Esnek Heredoc ve Nowdoc Sözdizimleri
  • İşlev Çağrısında Trailing Comma için gerekli izinler
  • JSON_THROW_ON_ERROR
  • list() Referans İlişkilendirmesi
  • is_countable İşlevi
  • array_key_first(), array_key_last()
  • Argon2 Şifreleme Geliştirmeleri

 

Maskot

PHP projesinin maskotu, 1998'de Vincent Pontier tarafından tasarlanan ve üzerinde PHP logosu bulunan mavi bir fildir. PHP harfleri, yanal bir açıdan bakılırsa fil şeklini oluşturuyordu."elePHPant", peluş oyuncak formundayken bazen farklı renklere sahiptir.

Bu maskotun birçok varyasyonu yıllar içinde yapılmıştır. Sadece Vincent Pontier'in özgün tasarımına dayanan elePHPant topluluk tarafından resmi olarak kabul edilir.

Kaynak: https://en.wikipedia.org/wiki/PHP