PHP nedir? Kısa tanım
PHP (PHP: Hypertext Preprocessor), web geliştirme için tasarlanmış, sunucu tarafında çalışan, açık kaynaklı ve ücretsiz bir betik dilidir. Ziyaretçi bir sayfayı istediğinde sunucu PHP kodunu çalıştırır, gerekirse veritabanından veri çeker ve sonuçta oluşan HTML'i tarayıcıya gönderir. Bu sayede aynı dosya, her ziyaretçiye farklı ve güncel içerik sunabilir.
PHP'nin ilk sürümleri 1990'ların ortasında Rasmus Lerdorf tarafından kişisel bir araç olarak geliştirildi; bugün ise geniş bir topluluk tarafından sürdürülen olgun bir dildir. Kolay başlanabilmesi, neredeyse tüm hosting firmalarında hazır bulunması ve geniş kaynak arşivi, onu web'in en yaygın sunucu taraflı dillerinden biri yapmıştır.
PHP nasıl çalışır?
PHP'yi anlamanın en kolay yolu, bir sayfa isteğinin yolculuğunu izlemektir:
- Ziyaretçi tarayıcısına bir adres yazar ve istek sunucuya gider.
- Web sunucusu (Apache, Nginx veya LiteSpeed) istenen dosyanın bir PHP dosyası olduğunu görür ve onu PHP yorumlayıcısına iletir.
- PHP kodu çalışır: form verilerini okur, veritabanına sorgu gönderir, oturum bilgisini kontrol eder.
- Sonuç düz HTML olarak üretilir ve tarayıcıya gönderilir.
- Tarayıcı yalnızca bu HTML'i görür; PHP kodunun kendisi ziyaretçiye hiçbir zaman ulaşmaz.
Son madde önemlidir: JavaScript tarayıcıda çalıştığı için kaynağını herkes görebilir, PHP ise sunucuda kalır. Veritabanı şifresi gibi gizli bilgilerin sunucu tarafında tutulmasının nedeni budur. PHP kodunun çalışması için sunucuda PHP kurulu olmalıdır; paylaşımlı hostinglerin neredeyse tamamında bu hazır gelir. Barındırma seçeneklerini hosting nedir rehberinde inceleyebilirsiniz.
PHP ne işe yarar? PHP ile neler yapılır?
PHP, dinamik web sitelerinin hemen her parçasında kullanılabilir. En yaygın kullanım alanları şunlardır:
- İçerik yönetim sistemleri: WordPress, Joomla ve Drupal PHP ile yazılmıştır; bir WordPress temasını düzenlemek ya da eklenti geliştirmek PHP bilgisi gerektirir.
- Forum ve topluluk yazılımları: XenForo, phpBB ve MyBB gibi forum yazılımları PHP tabanlıdır.
- E-ticaret siteleri: ürün listeleme, sepet, ödeme altyapısı entegrasyonu ve sipariş yönetimi.
- Üyelik ve oturum sistemleri: kayıt, giriş, şifre sıfırlama ve yetkilendirme.
- Formlar ve e-posta: iletişim formlarını işleyip e-posta göndermek.
- API ve entegrasyonlar: başka servislerden veri almak ya da kendi uygulamanız için API sunmak.
- Komut satırı ve zamanlanmış görevler: yedekleme, rapor üretimi ve toplu e-posta gibi otomatik işler.
WordPress kullanan bir site sahibi için PHP bilmek zorunlu değildir; ancak temel düzeyde okuyabilmek, bir hata mesajını anlamaktan tema dosyasında küçük bir değişiklik yapmaya kadar pek çok işi kolaylaştırır. WordPress tarafındaki pratik konuları WordPress forumu sayfasında topladık.
PHP ve diğer web dilleri
PHP tek seçenek değildir; sunucu tarafında Node.js, Python, Ruby, Java ve C# gibi alternatifler de yaygın olarak kullanılır. Hangisinin seçileceği projenin türüne, ekibin bilgisine ve barındırma imkânlarına bağlıdır.
| Dil / ortam | Öne çıkan yanı | Barındırma | Yaygın kullanım |
|---|---|---|---|
| PHP | Web için tasarlanmış, başlaması görece kolay, geniş hazır yazılım ekosistemi | Paylaşımlı hostinglerin çoğunda hazır | WordPress, forum yazılımları, Laravel uygulamaları |
| JavaScript (Node.js) | Ön yüz ve sunucuda aynı dil, gerçek zamanlı uygulamalara uygun | Genellikle VPS veya özel platform | API'ler, sohbet ve canlı uygulamalar |
| Python | Okunabilir sözdizimi, güçlü veri ve yapay zeka kütüphaneleri | Genellikle VPS veya özel platform | Django ve Flask uygulamaları, otomasyon |
| C# (.NET) | Güçlü tip sistemi, kurumsal geliştirme araçları | .NET destekli sunucular | Kurumsal web uygulamaları |
Kişisel siteler, bloglar ve hazır yazılımla kurulan projeler için PHP hâlâ en pratik seçeneklerden biridir. Node.js veya Python uygulamaları ise çoğunlukla sürekli çalışan süreçlere ihtiyaç duyduğundan VPS gibi bir sanal sunucu gerektirir.
PHP öğrenme yol haritası
PHP öğrenmeye başlamak için pahalı araçlara ihtiyacınız yok; bir kod editörü ve bilgisayarınızda çalışan yerel bir sunucu ortamı yeterlidir. XAMPP veya Laragon gibi paketler PHP'yi, web sunucusunu ve MySQL'i birlikte kurar; PHP'nin yerleşik geliştirme sunucusu da küçük denemeler için kullanılabilir. Aşağıdaki sıra, yeni başlayanların kaybolmadan ilerlemesine yardımcı olur:
- HTML ve CSS temeli: PHP'nin ürettiği şey HTML'dir; önce sayfa yapısını bilmeniz gerekir.
- Temel sözdizimi: değişkenler, veri türleri, koşullar, döngüler, diziler ve fonksiyonlar.
- Formlar ve istekler: GET ve POST verilerini okumak, girdiyi doğrulamak, oturum ve çerez kullanmak.
- Veritabanı: MySQL veya MariaDB ile temel SQL sorguları ve PDO üzerinden hazırlanmış ifadelerle (prepared statements) bağlantı kurmak.
- Nesne yönelimli programlama: sınıflar, arayüzler, isim alanları (namespace) ve otomatik yükleme.
- Composer ve paketler: bağımlılık yönetimi ve hazır kütüphaneleri projeye eklemek.
- Bir çatı (framework): Laravel veya Symfony gibi bir çatıyla yönlendirme, şablonlar ve veritabanı katmanını öğrenmek.
- Git ve yayına alma: sürüm kontrolü, sunucuya dağıtım ve hata günlüklerini okumak.
- Gerçek bir proje: küçük bir blog, not uygulaması veya iletişim formu gibi uçtan uca çalışan bir iş çıkarmak.
Öğrenirken takıldığınız noktaları forumdaki Yeni Başlayanlar ve PHP bölümlerinde sorabilirsiniz; veritabanı tarafındaki sorular için MySQL bölümü daha uygundur. Belli bir seviyeye geldiğinizde bu bilgiyi gelire dönüştürmenin yollarını freelancer webmaster rehberinde bulabilirsiniz.
Güncel PHP sürümleri hakkında
PHP düzenli olarak yeni sürümler yayımlar. Her sürüm belirli bir süre aktif destek, ardından yalnızca güvenlik güncellemesi alır ve bu süre dolduğunda desteği tamamen sona erer. Hangi sürümlerin hâlâ desteklendiğini öğrenmenin en güvenilir yolu, php.net üzerindeki desteklenen sürümler sayfasıdır.
PHP 8 serisiyle dile önemli yenilikler geldi: JIT derleyici, isimlendirilmiş argümanlar, match ifadesi, birleşik tipler (union types), enum yapısı ve salt okunur (readonly) özellikler bunlardan bazılarıdır. Bu yenilikler hem performansı hem de kodun okunabilirliğini artırdı. Desteği çoktan sona ermiş PHP 5 ve PHP 7 sürümlerini kullanmaya devam etmek ise yamalanmayan güvenlik açıklarıyla yaşamak anlamına gelir.
Sitenizin PHP sürümünü yükseltmeden önce tam yedek alın ve tema, eklenti ya da scriptlerinizin yeni sürümle uyumlu olduğunu bir test ortamında doğrulayın. Güncel bir PHP sürümü WordPress sitelerde hız açısından da fark yaratır; ayrıntılar için WordPress hızlandırma rehberine bakabilirsiniz.
PHP güvenliği: temel ilkeler
PHP'nin kendisi güvensiz bir dil değildir; güvenlik açıklarının büyük kısmı kullanıcı girdisine körü körüne güvenen koddan doğar. Aşağıdaki ilkeler, ister kendi kodunuzu yazın ister hazır bir scripti değerlendirin, aklınızda tutmanız gereken temel kurallardır.
- SQL enjeksiyonuna karşı: sorguları kullanıcı verisiyle birleştirmek yerine PDO veya MySQLi ile hazırlanmış ifadeler kullanın.
- XSS'e karşı: kullanıcıdan gelen veriyi sayfaya basmadan önce htmlspecialchars gibi fonksiyonlarla kaçışlayın.
- CSRF'ye karşı: veri değiştiren formlarda tek kullanımlık doğrulama belirteçleri (token) kullanın.
- Şifreler: şifreleri asla düz metin olarak veya eski özet algoritmalarıyla saklamayın; password_hash ve password_verify fonksiyonlarını kullanın.
- Dosya yükleme: dosya türünü ve boyutunu sunucu tarafında doğrulayın, yüklenen dosyaların çalıştırılabilir bir dizine düşmesini engelleyin.
- Hata gösterimi: canlı sitede hata ayrıntılarını ekrana basmayın (display_errors kapalı), hataları günlük dosyasına yazın.
- Güncellik: PHP sürümünü, kullandığınız çatıyı ve Composer paketlerini güncel tutun.
Verilerin şifreli taşınması da güvenliğin parçasıdır; form ve oturum bilgilerinin korunması için sitenizi SSL sertifikası ile HTTPS üzerinden yayınlayın.
PHP ile ilk adımı atmak
PHP öğrenmenin en etkili yolu, okuduğunu hemen denemektir. Küçük bir iletişim formuyla başlayın, ardından bunu veritabanına kaydeden bir yapıya dönüştürün, sonra bir yönetim sayfası ekleyin. Her adımda yeni bir kavramla tanışırsınız. Web programlamanın diğer alanlarını, hazır scriptleri ve yazılım hizmetlerini merak ediyorsanız yazılım forumu sayfası iyi bir sonraki durak olacaktır. İlk sitenizi hazır bir sistemle açmak isterseniz WordPress kurulumu rehberi, PHP'nin pratikte nasıl çalıştığını görmenizi de sağlar.
Forumdaki ilgili bölümler
- PHPPHP soruları ve kod paylaşımı.
- Yeni BaşlayanlarProgramlamaya yeni başlayanlar için.
- MySQLVeritabanı sorguları ve tasarımı.
- Veritabanı ProgramcılığıSQL ve veritabanı konuları.
- Hazır Kod BankasıPaylaşılan kod parçaları.
- Yazılım HizmetleriPHP projeleri için ücretli işler.
Sık sorulan sorular
PHP nedir?
PHP, web sayfalarını sunucu tarafında dinamik olarak üreten, açık kaynaklı ve ücretsiz bir programlama dilidir. WordPress gibi pek çok yaygın yazılım PHP ile çalışır.
PHP öğrenmek zor mu?
Temel sözdizimi yeni başlayanlar için görece kolaydır. HTML bilgisiyle başlayıp küçük projelerle ilerlerseniz çalışan uygulamalar yazabilirsiniz; ustalaşmak ise düzenli pratik gerektirir.
PHP hâlâ kullanılıyor mu?
Evet. WordPress, forum yazılımları ve çok sayıda hazır script PHP ile çalışmaya devam ediyor; dil de düzenli olarak yeni sürümlerle geliştiriliyor.
PHP öğrenmek için ne gerekir?
Bir kod editörü ve XAMPP veya Laragon gibi yerel bir sunucu ortamı yeterlidir. Öncesinde temel HTML ve CSS bilmek işinizi kolaylaştırır.
Hangi PHP sürümünü kullanmalıyım?
Resmî olarak desteklenen güncel bir sürüm kullanın. Desteklenen sürümlerin listesini php.net üzerinden kontrol edebilirsiniz; desteği bitmiş sürümler güvenlik güncellemesi almaz.