Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
“PHP pure” tek başına belirli bir ürün veya sürüm adı değildir; geçtiği bağlam kontrol edilmelidir. Kod geliştirme konuşmalarında Pure PHP ifadesi framework veya CMS kullanmadan PHP ile geliştirmeyi anlatmak için kullanılabilir. Bu rehber bu kullanımını ele alır; benzer adlı bir paketin varlığını ya da sürümünü varsaymaz. Bu ifade PHP’nin ayrı bir sürümü, çalışma modu veya resmî bir standardı değildir; geliştiricilerin kullandığı pratik bir tanımdır.

Pure PHP kullanırken PDO, oturum yönetimi, JSON işlevleri veya cURL gibi PHP’nin yerleşik bileşenlerinden yararlanabilirsiniz. Önemli olan, uygulamanın yönlendirme, form işleme, doğrulama ve dosya organizasyonu gibi ana kararlarının hazır bir framework tarafından belirlenmemesidir.

Pure PHP nasıl çalışır?​


PHP kodu sunucuda çalışır; istemciye genellikle HTML, JSON veya başka bir çıktı gönderilir. Web ortamında çalışması için PHP yorumlayıcısının yanında bir web sunucusu gerekir. Komut satırı kullanımında ise web sunucusu ve tarayıcı zorunlu değildir.

Basit bir çıktı örneği şöyledir:

PHP:
<?php
$name = 'Ayşe';

echo 'Merhaba, ' . htmlspecialchars($name, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');

Buradaki htmlspecialchars() işlevi, metni HTML içinde gösterirken özel karakterleri kaçışlar. Kullanıcıdan veya dış bir servisten gelen veriyi doğrudan HTML’e yazdırmak yerine, çıktının bağlamına uygun kaçış uygulanmalıdır.

Pure PHP, her şeyi tek bir dosyada yazmak anlamına gelmez. Uygulama büyüdükçe sınıflar, ayrı işlem katmanları, şablonlar ve yapılandırma dosyaları oluşturmak yine mümkündür. Fark, bu mimariyi sizin kurmanızdır.

Somut örnek: POST formunu işlemek​


Bir form işleyicide temel akış şu şekilde kurulabilir:

  1. İsteğin gerçekten POST yöntemiyle geldiğini kontrol edin.
  2. Alanları alın ve beklenen biçimde olup olmadığını doğrulayın.
  3. Geçersiz veride uygun HTTP durum kodu ve kullanıcıya anlaşılır hata döndürün.
  4. Veritabanına yazarken PDO prepared statement kullanın.
  5. İşlem tamamlandıktan sonra uygun yönlendirmeyle form yenilemesinde tekrar gönderim riskini azaltın; ödeme gibi işlemlerde ek tekilleştirme de gerekebilir.

Örneğin yalnızca e-posta alanını doğrulayan basit bir uç nokta şöyle olabilir:

PHP:
<?php
header('Content-Type: text/plain; charset=UTF-8');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    header('Allow: POST');
    http_response_code(405);
    exit('Yalnızca POST isteği kabul edilir.');
}

$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

if ($email === false || $email === null) {
    http_response_code(422);
    exit('Geçerli bir e-posta adresi girin.');
}

echo 'Form alındı.';

Bu örnek, doğrulamanın yapıldığını gösterir; tek başına tam bir üretim güvenliği katmanı değildir. Oturum açılmış kullanıcıların işlem yaptığı formlarda CSRF koruması, kimlik doğrulama, yetkilendirme, güvenli oturum ayarları ve hata günlüğü ayrıca ele alınmalıdır.

Ne zaman tercih edilir?​


Pure PHP, küçük bir form, tek amaçlı bir yönetim aracı, basit bir API veya PHP’nin temel çalışma mantığını öğrenmek için uygun olabilir. Projede kullanıcı rolleri, çok sayıda ekran, kapsamlı API uç noktaları, kuyruklar, testler ve ekip çalışması arttıkça yönlendirme, doğrulama ve bakım yükünü de sizin yönetmeniz gerekir.

Kararı verirken şu ayrım yardımcı olur:

Proje durumuYaklaşımAna dikkat noktası
Tek sayfalık araç veya küçük formPure PHPDoğrulama ve çıktı güvenliği
Orta ölçekli özel uygulamaDüzenli klasör yapısıyla Pure PHPKatmanları ve sorumlulukları ayırma
Büyük ve çok kullanıcılı uygulamaFramework değerlendirmesiTest, bakım ve ekip standardı

Pure PHP seçilirse en azından public, src, templates ve yapılandırma için ayrı alanlar planlanabilir. Veritabanı bağlantılarını ve SQL sorgularını her sayfaya dağıtmak yerine ortak bir erişim katmanı oluşturmak, uygulama büyüdüğünde değişiklikleri kolaylaştırır.

Sık yapılan hatalar​


  • Framework kullanmamanın otomatik olarak güvenli olduğunu sanmak. Güvenlik, kullanılan araçtan çok uygulanan kontrollerle ilgilidir.
  • Kullanıcı verisini HTML’e doğrudan yazdırmak. Çıktı bağlamına uygun kaçış uygulanmalıdır.
  • SQL sorgusunu kullanıcı girdisini metin birleştirmeyle ekleyerek oluşturmak. Değerler için prepared statement kullanılmalıdır; tablo veya sütun adları ise kullanıcı girdisiyle doğrudan parametrelenemez.
  • Tüm uygulamayı tek PHP dosyasına koymak. Küçük başlayan kod kısa sürede bakımı zor bir yapıya dönüşebilir.
  • Ayrıntılı hata mesajlarını üretimde ziyaretçiye göstermek. Hatalar güvenli biçimde günlüğe alınmalı, istemciye gereksiz iç bilgi gönderilmemelidir.
  • Oturum ayarlarını varsayılan kabul etmek. HTTPS kullanılan uygulamalarda güvenli, HttpOnly ve uygun SameSite çerez ayarları değerlendirilmelidir.

Composer kullanmanız da uygulamanın framework kullanmadığı gerçeğini değiştirmez. Composer bir bağımlılık yönetim aracıdır; belirleyici olan, uygulamanın ana mimarisinin bir framework’e bırakılıp bırakılmadığıdır. Ancak kullanılan her paketin bakım durumu, lisansı ve güvenliği ayrıca incelenmelidir.

Sık sorulan sorular​


Pure PHP ile WordPress aynı şey midir?​


Hayır. WordPress PHP ile yazılmış bir CMS’dir ve hazır içerik yönetimi, eklenti yapısı ve tema sistemi sunar. Pure PHP ise böyle bir CMS kullanmadan uygulamayı doğrudan PHP ile kurma yaklaşımını anlatır.

Pure PHP’de sınıf ve MVC kullanılabilir mi?​


Evet. Pure PHP, yalnızca prosedürel kod yazmak demek değildir. Sınıflar, arayüzler, namespace yapısı ve MVC benzeri bir organizasyon kullanılabilir; bunları hazır bir framework yerine siz tasarlarsınız.

Pure PHP yazınca hosting için ayrı bir PHP sürümü seçilir mi?​


Hayır. Böyle ayrı bir resmî sürüm veya çalıştırma düğmesi yoktur. Gereken PHP sürümünü kodun kullandığı dil özellikleri, uzantılar ve ek paketlerin gereksinimleri belirler. Yayına almadan önce gerçek sunucu ortamının bu gereksinimlerle eşleştiğini kontrol edin.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.