php ne demek?
PHP : Hypertext Preprocessor (Türkçe: Üstünyazı
Önişlemcisi ) (Aslen: Personal Home Page - Kişisel Ana Sayfa) ,
için üretilmiş, sunucu taraflı, çok geniş
kullanımlı, genel amaçlı, içerisine gömülebilen
ve
dilidir. İlk kez 1995
yılında tarafından yaratılan
PHP'nin geliştirilmesi bugün PHP topluluğu tarafından sürdürülmektedir.
Ocak 2013 itibarıyla 244 milyondan fazla web sitesi PHP ile çalışırken
2.1 milyon PHP kurulumu
bulunmaktadır.
PHP kodları PHP işleme modülü bulunan bir web sunucusu tarafından
yorumlanır ve çıktı olarak web sayfası üretilir. Bu kodlar veriyi
işlemek üzere harici bir dosyaya kaydedilerek çağırılabildiği gibi
doğrudan kodunun içine de gömülebilir. PHP zaman
içinde bir arayüzü sunacak
şekilde evrilmiştir, yardımıyla grafiksel
masaüstü uygulaması geliştirmek de mümkündür.
PHP özgür bir yazılım olup PHP Lisansı ile dağıtılmaktadır. Bu
lisans kullanım şartları kısmında ile örtüşmese de, PHP tüm
web sunuculara ve hemen hemen tüm işletim sistemi ve platforma ücretsiz
olarak yüklenebilir.
Tarihçe
PHP'nin geliştirilmesi 1994 yılında 'un kişisel web sitesini yönetmek
için bir takım CGI (İngilizce: )
betikleri yazmasıyla başladı. Rasmus bu betikler yardımıyla özgeçmişini
sitede görüntülüyor ve sitenin ziyaretçi trafiğini kaydediyordu. Bir
süre sonra web formları ile etkileşime girebilecek, veritabanları ile
iletişim kurabilecek ve daha hızlı çalışabilecek şekilde bu betikleri C
ile yeniden kodladı ve bu uygulamaya Kişisel Ana Sayfa/Form
Yorumlayıcı (PHP/FI, İngilizce: Personal Home Page/Forms
Interpreter) adını verdi. PHP/FI yardımıyla basit anlamda dinamik
web siteleri oluşturmak oldukça kolaydı. Rasmus, 8 Haziran 1995
tarihinde hata ayıklama sürecini hızlandırmak ve kaynak kodu
iyileştirmek üzere bir tartışma grubunda
PHP/FI uygulamasını Personal Home Page Tools (PHP Tools) adıyla
ilk kez duyurdu. 2013 yılı itibarıyla PHP içinde mevcut olan Perl
benzeri değişken tanımlama, form yönetimi ve betik kodları arasına
kodu yerleştirebilme gibi temel özellikler bu
ilk sürümde de mevcuttu. genel olarak
Perl'e benzese de daha kısıtlı ve basit ancak daha tutarsızdı. Bir
geliştirme takımıyla aylar süren çalışma ve test aşamalarının ardından
PHP/FI 2 sürümü 1997 Kasım ayında resmi olarak duyuruldu.
ve 1997 yılında
baştan yazdılar ve
dilin ismini PHP: Hypertext Preprocessor olarak değiştirerek PHP 3 ün
temellerini attılar. Bunu PHP 3 ün herkese açık olan test sürecinin
başlaması izledi ve 1998 yılının Haziran ayında PHP 3 resmi olarak
duyuruldu. Suraski ve Gutmans bu sürecin ardından PHP'nin çekirdeğini
sil baştan kodlamak suretiyle 1999 yılında Zend Motorunu geliştirdiler
ve İsrail'in kentinde isimli bir şirket
kurdular.
22 Mayıs 2000 tarihinde temelleri Zend Engine 1.0 ile güçlendirilmiş PHP
4 duyuruldu ve Ağustos 2008 itibarıyla 4.4.9 sürümüne ulaşana kadar
aktif olarak geliştirildi. Bugün PHP 4 ün geliştirilmesi
durdurulmuştur ve güvenlik güncellemeleri dahil olmak üzere üzerinde
hiçbir iyileştirme yapılmamaktadır.
13 Temmuz 2004 tarihinde yeni Zend Engine II ile güçlendirilmiş PHP 5
yayınlandı. PHP 5, için çok daha fazla
olanak sağlıyor, PHP Veri Nesneleri (PDO) eklentisi yardımıyla
veritabanlarına erişim için oldukça tutarlı ve hızlı bir arayüz yanında
performansa yönelik çok sayıda iyileştirme barındırıyordu. 2008
yılında PHP 4 ün tutarlı sürümünün yayınlanması durduruldu ve PHP 5
geliştirilmesi devam eden tek tutarlı sürüm oldu. PHP (İngilizce: Late static
binding) özelliği barındırmıyordu ancak 5.3 sürümü ile bu önemli eksik
giderildi.
Sürüm geçmişi
| Anlamı |
---|
Kırmızı | Eski sürüm, desteklenmiyor |
Sarı | Eski sürüm, hala destekleniyor |
Yeşil | Mevcut sürüm |
Mavi | Gelecek sürüm ya da , sürüm |
<table>
<thead>
<tr class="header">
<th><p>Ana Sürüm</p></th>
<th><p>Ek Sürüm</p></th>
<th><p>Yayın Tarihi</p></th>
<th><p>Notlar</p></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>1</p></td>
<td><p>1.0.0</p></td>
<td></td>
<td><p>"Personal Home Page Tools(Kişisel Anasayfa Araçları)" olarak
anılıyordu ve kısaltımı "PHP" idi.</p></td>
</tr>
<tr class="even">
<td><p>2</p></td>
<td><p>2.0.0</p></td>
<td></td>
<td><p><a href="Yaratıcı" title="wikilink">Yaratıcısı</a> ve <a
href="geliştirici" title="wikilink">geliştiricisi</a> "en hızlı ve en
sade araç" olarak, <a href="Web_sayfası" title="wikilink">web
sayfaları</a> için geliştirdi.</p></td>
</tr>
<tr class="odd">
<td><p>3</p></td>
<td><p>3.0.0</p></td>
<td></td>
<td><p>Sürüm kişisellikten, kurumsallığa geçti. <a href="Zeev_Suraski"
title="wikilink">Zeev Suraski</a> ve <a href="Andi_Gutmans"
title="wikilink">Andi Gutmans</a> tekrar basit dil bilgisini
yazdı.</p></td>
</tr>
<tr class="even">
<td><p>4</p></td>
<td><p>4.0.0</p></td>
<td></td>
<td><p>Daha ileri seviye dil bilgisi eklendi/Zend Motoru denilen dil
bilgisi denetleyicisi getirildi.</p></td>
</tr>
<tr class="odd">
<td><p>4.1.0</p></td>
<td></td>
<td><p>'Süper globaller' tanıştırıldı. (<code>$_GET</code>,
<code>$_POST</code>, <code>$_SESSION</code>, <code>$_SERVER</code>
vb...)</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>4.2.0</p></td>
<td></td>
<td><p>register_globals öntanımlı olarak engellendi.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>4.3.0</p></td>
<td></td>
<td><p><a href="Command-line_interface" title="wikilink">CLI</a>
tanıştırıldı, <a href="Common_Gateway_Interface"
title="wikilink">CGI</a> ekleri yapıldı.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>4.4.0</p></td>
<td></td>
<td><p><code>phpize</code> ve <code>php-config</code> betikleri için
eklenmeler yapıldı.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>4.4.8</p></td>
<td></td>
<td><p>Çoğu güvenlik sorunları ve hatalar düzeltildi. Son kalıcı PHP 4
sürümü oldu. Gerekli ise, güvenlik güncellemeleri 2008-08-08 e kadar
sürdü.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>4.4.9</p></td>
<td></td>
<td><p>Daha fazla açık onarıldı. PHP 4 serileri için son sürüm
oldu.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5</p></td>
<td><p>5.0.0</p></td>
<td></td>
<td><p>Zend Motoru II ile yeni obje modelleri geliştirildi.</p></td>
</tr>
<tr class="even">
<td><p>5.1.0</p></td>
<td></td>
<td><p>Eklenen değişkenler ile performans artışı gözlemlendi.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.2.0</p></td>
<td></td>
<td><p>Filtreleme öntenımlı olarak iptal edildi.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.2.11</p></td>
<td></td>
<td><p>Hata ve güvenlik sorunları çözüldü.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.2.12</p></td>
<td></td>
<td><p>Güvenlik ve veri tabanı iletişimi güçlendirildi. 60 adet hata
düzeltildi.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.2.13</p></td>
<td></td>
<td><p>Hatalar düzeltildi.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.2.14</p></td>
<td></td>
<td><p>Hatalar düzeltildi. PHP 5.2.x sürümleri geliştirilmesi
durduruldu.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.3.0</p></td>
<td></td>
<td><p><a href="Namespace" title="wikilink">Namespace</a> desteği,
Atlama kodları (<a href="goto" title="wikilink">goto</a> ile
limitlendi), Yerli PHP arşivlemesi (phar),<a href="Microsoft_Windows"
title="wikilink">Windows</a> desteği arttırıldı, sqlite3 geliştirildi,
fileinfo, mime_magic yerine daha iyi bir <a href="MIME"
title="wikilink">MIME</a> desteği için getirildi, uluslararası olarak
"<em>ereg</em>" kod yapısı iptal edildi.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.3.1</p></td>
<td></td>
<td><p>100'den fazla hata düzeltildi, bazı küçük sorunlar da
düzeltildi.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.3.2</p></td>
<td></td>
<td><p>Çok geniş bir hata düzeltimi yapıldı.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.3.3</p></td>
<td></td>
<td><p>Başlıca hata ve güvenlik sorunları onarıldı. <a
href="http://php-fpm.com">FPM</a></p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.4</p></td>
<td></td>
<td><p>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ı.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>5.5</p></td>
<td></td>
<td><p>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.</p></td>
<td></td>
</tr>
<tr class="even">
<td><p>5.6</p></td>
<td></td>
<td><p>Belirsiz sayıda parametre alan fonksiyonlar (variadic functions),
sabitlere (const) numerik işlemlerle (+, -, * ...) tanım yapabilme, üs
alma operatörü (**) eklendi.</p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>7</p></td>
<td><p>7.0</p></td>
<td><p>2015-12-03</p></td>
<td><p><a href="Zend_Engine" title="wikilink">Zend Engine 3.0</a> ile
önceki sürümlere göre performansı önemli derecede arttırıldı<a
href="#fn1" class="footnote-ref" id="fnref1"
role="doc-noteref"><sup>1</sup></a>. <a href="??_Operatörü"
title="wikilink">?? Operatörü</a>, <code><=></code> üç yollu
karşılaştırma operatörü ve anonymous sınıflar eklendi. <a href="Unicode"
title="wikilink">Unicode</a> desteği geldi.</p></td>
</tr>
<tr class="even">
<td><p>7.1</p></td>
<td><p>2016-12-01</p></td>
<td><p><a href=":en:Void_type" title="wikilink">Void tipi</a> eklendi,
sınıf sabitlerini (const) <a href="kapsülleme"
title="wikilink">kapsülleme</a>, boşaltılabilir (nullable) tip, birden
fazla hata (exception handling) yakalayabilme.<a href="#fn2"
class="footnote-ref" id="fnref2"
role="doc-noteref"><sup>2</sup></a></p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>7.2</p></td>
<td><p>2017-11-30</p></td>
<td><p><a href=":en:Object_Type" title="wikilink">Object tipi</a>
eklendi, abstract metodlar artık override edilebiliyor.<a href="#fn3"
class="footnote-ref" id="fnref3"
role="doc-noteref"><sup>3</sup></a></p></td>
<td></td>
</tr>
<tr class="even">
<td><p>7.3</p></td>
<td><p>2018-12-06</p></td>
<td><p>is_countable fonsiyonu, Esnek Heredoc ve Nowdoc Sözdizimleri <a
href="#fn4" class="footnote-ref" id="fnref4"
role="doc-noteref"><sup>4</sup></a></p></td>
<td></td>
</tr>
<tr class="odd">
<td><p>7.4</p></td>
<td><p>2019-11-28</p></td>
<td><p>Ok fonksiyon, ön yükleme, sınıflarda tip özelliği, geliştirilmiş
tip varyansları, dizilerde dağıtma operatoru, null işaretleme operatörü
<a href="#fn5" class="footnote-ref" id="fnref5"
role="doc-noteref"><sup>5</sup></a></p></td>
<td></td>
</tr>
<tr class="even">
<td><p>rowspan="3" row |8</p></td>
<td><p>8.0</p></td>
<td><p>2020-12-3</p></td>
<td><p>İsimli parametreler, <em>union</em> türleri, nitelikler,
<em>constructor</em> nitelik promosyonu, <em>nullsafe</em> operatörü,
<em>match</em> ifadesi, JIT(<em>Just in Time</em>), <em>static</em>
türünde değer döndürme, <em>mixed</em> türü, <em>throw</em> ifadesi,
nesnelerde <em>::class</em> sözdizimi, <em>try-catch</em> sözdiziminin
hata değişkeni belirtmeden kullanımı, parametre listelerinin sonunda
virgül kullanımı, <em>string</em> değişkenlerde otomatik
<em>Stringable</em> arayüze geçiş, <em>str_contains()</em> fonksiyonu,
<em>str_starts_with()</em> ve <em>str_ends_with()</em> fonksiyonları,
<em>string</em> birleştirme önceliği.<a href="#fn6" class="footnote-ref"
id="fnref6" role="doc-noteref"><sup>6</sup></a><a href="#fn7"
class="footnote-ref" id="fnref7"
role="doc-noteref"><sup>7</sup></a></p></td>
</tr>
<tr class="odd">
<td><p>8.0.1</p></td>
<td><p>2021-01-07</p></td>
<td><p>Bazı hatalar giderildi.<a href="#fn8" class="footnote-ref"
id="fnref8" role="doc-noteref"><sup>8</sup></a></p></td>
<td></td>
</tr>
<tr class="even">
<td><p>8.0.2</p></td>
<td><p>2021-02-04</p></td>
<td><p>Bazı hatalar giderildi.<a href="#fn9" class="footnote-ref"
id="fnref9" role="doc-noteref"><sup>9</sup></a></p></td>
<td></td>
</tr>
</tbody>
</table>
<section class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1" role="doc-endnote"><a href="#fnref1" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn2" role="doc-endnote"><a href="#fnref2" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn3" role="doc-endnote"><a href="#fnref3" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn4" role="doc-endnote"><a href="#fnref4" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn5" role="doc-endnote"><a href="#fnref5" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn6" role="doc-endnote"><a href="#fnref6" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn7" role="doc-endnote"><a href="#fnref7" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn8" role="doc-endnote"><a href="#fnref8" class="footnote-back"
role="doc-backlink">↩︎</a></li>
<li id="fn9" role="doc-endnote"><a href="#fnref9" class="footnote-back"
role="doc-backlink">↩︎</a></li>
</ol>
</section>
Ek bilgiler
PHP, özellikle veritabanıyla birlikte ve
işletim sistemi altında iyi bir performans
sergilemektedir. / diline olan
benzerliği nedeniyle bu dili önceden bilenlerin PHP öğrenmesi oldukça
kolaydır. Kolay öğrenilmesi ve hızlı performansı nedeniyle
, ,
, ve
gibi dünyaca ünlü sitelerin yazımında
kullanılmasına rağmen, kodların kolay anlaşılabilmesi açısından ve
birden fazla programcı tarafından sürekli geliştirilmesi gerekli büyük
projelerde kullanılması
daha uygun görülmektedir. Ancak sadece web tabanlı yazılımın
geliştirilmesi söz konusu olduğunda
göre öğrenilmesinin daha
kolay olması nedeniyle genellikle PHP tercih edilmektedir. PHP, web
tasarımında önemli kolaylıklar sağlasa da 2005 te
in kullanmaya
başlamasından sonra tek başına öğrenilmesi yeterli olmamakta ve
'ı öğrenmek için gerekli
, ,
, (ve ) ile birlikte bir
bütün oluşturabilmektedir.
Geliştiriciler
Önemli PHP Geliştiricileri |
---|
|
|
Danimarka asıllı , . PHP'nin mucidi ve . 2002'den beri için çalışmakta. Aynı zamanda başlamasını sağladı. gibi PHP kontrol ediyor. |
Program dizimi
Aşağıdaki HTML
içerisine gömülü PHP kodunu görebilirsiniz.
<!DOCTYPE html>
<html>
<head>
<title>PHP Testi</title>
</head>
<body>
<?php echo '<p>Merhaba Dünya</p>'; ?>
</body>
</html>
Unutmayın ki PHP kodunun HTML içerisinde gömülü olması zorunlu değildir.
Benzeri bir aşağıdaki gibi
yazılabilir.
<?='Hello world' ?>
Fonksiyonlar
PHP yazılımı büyük bir fonksiyon kütüphanesi ile birlikte gelir. Gömülü
fonksiyonların haricinde kendi fonksiyonunuzu aşağıdaki gibi
tanımlayabilirsiniz.
<?php
function yasimiGetir($dogumYili) {
$yas = date('Y') - $dogumYili;
return $yas;
}
echo yasimiGetir(1981) . ' yaşındayım.';
?>
<?php
function topla($a, $b){
return $a + $b;
}
echo topla(5, 10); //15
?>
Ayrıca bakınız
Kaynakça
Dış bağlantılar
Orijinal kaynak: php. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Kategoriler