PHP Standards Recommendations (PSR), PHP programlama dilinde bir dizi standart ve rehberlik belgesidir. Bu belgeler, PHP topluluğunda kodun tutarlılığını, okunabilirliğini ve paylaşılabilirliğini artırmayı amaçlar. PSR’ler, geliştiricilerin kod yazma ve projeleri paylaşma süreçlerini kolaylaştırmak için belirli bir yönergeler seti sunar.
PHP-FIG (PHP Framework Interop Group), PSR’leri oluşturan ve yöneten bir topluluktur. PSR’ler, PHP projelerinin çeşitli bileşenlerinin birbiriyle uyumlu olmasını sağlar ve birçok popüler PHP çatısının (framework) uyumluluğunu sağlamak için kullanılır.
PSR-0: Otomatik Yükleme Standartı
Bu PSR artık geçerli değildir ve PSR-4 yerini almıştır.
Sınıfları, arayüzleri ve isim alanlarını dosya sistemine dönüştürmek için standartlar belirler.
Otomatik yükleme işlemi için yapılandırmaları içerir.
PSR-1: Temel Kodlama Standartları
Bu PSR, PHP kodlaması için temel standartları belirler.
Dosya adlandırmaları, sınıf adlandırmaları, dosya yapısı ve otomatik yüklemeler gibi konuları kapsar.
Kodun okunabilirliğini artırmak ve projeler arasında tutarlılık sağlamak için yönergeler sunar.
PSR-2: Kodlama Stili Rehberi
Bu PSR, kodlama stilini belirler.
Girintileme, boşluklar, satır uzunluğu ve ifadelerin düzenlemesi gibi konuları içerir.
Kodun okunabilirliğini artırmak ve projeler arasında tutarlılık sağlamak için belirli kurallar ve öneriler sunar.
PSR-3: Kayıt Arabirimi
Bu PSR, loglama araçları için bir arabirim tanımlar.
Log mesajlarını oluşturma, düzeyleri belirleme ve kayıtları işleme gibi işlevleri içerir.
Uygulamaların loglama işlemlerini tutarlı bir şekilde yönetmelerini sağlar.
PSR-4: Otomatik Yükleme Standartı
Bu PSR, sınıfların otomatik olarak yüklenmesi için bir standart sağlar.
Sınıf ad alanlarını dosya sistemine dönüştürme ve otomatik yükleme yöntemlerini tanımlama gibi konuları içerir.
Proje dosya yapısını ve sınıf yüklemeyi kolaylaştırır.
PSR-5: PHPDoc Standartı
Bu PSR artık geçerli değildir ve PSR-19 yerini almıştır.
PHPDoc etiketleri ve belgelendirme için standartlar sunar.
Kod belgelerini tutarlı hale getirir ve otomatik dokümantasyon oluşturma işlemlerini kolaylaştırır.
PSR-6: Önbellekleme Arabirimi
Bu PSR, önbellekleme araçları için bir arabirim tanımlar.
Önbellekleme bileşenlerinin nasıl oluşturulacağı, önbelleklemenin nasıl yapılandırılacağı ve verilerin nasıl depolanacağı gibi konuları kapsar.
Önbellek kullanımını standardize ederek performans iyileştirmelerini kolaylaştırır.
PSR-7: HTTP Mesaj Arabirimi
Bu PSR, HTTP mesajlarının oluşturulması, işlenmesi ve gönderilmesi için bir arabirim tanımlar.
Request (istek) ve Response (yanıt) gibi HTTP mesajlarıyla ilgili işlevleri içerir.
HTTP protokolünü kullanan uygulamalar arasında uyum sağlar ve etkileşimli web uygulamalarının geliştirilmesini kolaylaştırır.
PSR-8: Hata Raporlama Arabirimi
Bu PSR, hata raporlama için bir arabirim tanımlar.
Hata yakalama, hata mesajlarını kaydetme, hata düzeylerini belirleme ve hata raporlarını işleme gibi işlevleri içerir.
Uygulamalar arasında tutarlı bir hata raporlama mekanizması sağlar.
PSR-9: Günlük Tutma Arabirimi
Bu PSR, günlük tutma (logging) için bir arabirim tanımlar.
Günlük kayıtlarını oluşturma, düzeyleri belirleme, log rotasyonu ve kayıtları işleme gibi işlevleri içerir.
Uygulamalar arasında tutarlı bir günlük tutma işlemi sağlar.
PSR-10: Kritik Altyapı Güvenliği Bildirimleri
Bu PSR, kritik altyapı güvenliği bildirimleri için bir standart sağlar.
Altyapı sağlayıcılarının güvenlik açıkları, zararlı yazılımlar veya diğer güvenlik tehditleri hakkında güncellemeler yapabilmesini sağlar.
Kritik altyapılar için güvenliği artırmayı hedefler.
PSR-11: Konteyner Arabirimi
Bu PSR, nesne bağımlılığı enjeksiyonu (dependency injection) için bir arabirim tanımlar.
Nesnelerin oluşturulması, bağımlılıkların çözülmesi ve nesnelerin alınması gibi işlevleri içerir.
Bağımlılık enjeksiyonu kullanan uygulamaların taşınabilirliğini artırır ve bileşenler arasında gevşek bağımlılıkların kurulmasına yardımcı olur.
PSR-12: Genel Kodlama Stili Rehberi
Bu PSR, PSR-2’nin gelişmiş bir versiyonu olarak genel kodlama stilini belirler.
Kodlama stilini, girintileme, boşluklar, satır uzunluğu, ifadelerin düzenlemesi ve dokümantasyon gibi alanları kapsar.
Kodun okunabilirliğini artırmayı, tutarlılığı sağlamayı ve işbirliğini kolaylaştırmayı hedefler.
PSR-13: Hypermedia Bağlantıları için URL Arabirimi
Bu PSR, URL’leri ve hypermedia bağlantılarını temsil etmek için bir arabirim tanımlar.
URL’lerin oluşturulması, ayrıştırılması ve işlenmesi gibi işlevleri içerir.
Hypermedia uygulamalarında bağlantılar arasındaki etkileşimi standardize etmeyi amaçlar.
PSR-14: Olaylar için Arabirim
Bu PSR, olay tabanlı programlamada kullanılan bir arabirim tanımlar.
Etkinliklerin tetiklenmesi, dinlenmesi ve işlenmesi gibi olay yönetimi işlevlerini içerir.
Olay tabanlı tasarımı kullanarak bileşenler arasındaki etkileşimi kolaylaştırır.
PSR-15: HTTP Sunucu İstekleri için Middleware Arabirimi
Bu PSR, HTTP sunucu isteklerini işlemek için bir middleware (ara katman) arabirimi tanımlar.
Middleware’lerin istekleri alma, yanıtları üretme ve istek/yanıt döngüsüne katılma gibi işlevleri içerir.
Sunucu tarafında modüler ve esnek HTTP işleme sağlar.
PSR-16: Basit Önbellekleme Arabirimi
Bu PSR, basit önbellekleme işlemleri için bir arabirim tanımlar.
Verilerin önbelleğe alınması, alınması, saklanması ve silinmesi gibi temel önbellek işlevlerini içerir.
Farklı önbellek uygulamaları arasında uyumluluk sağlar
PSR-17: HTTP Sunucusu İstekleri için Mesaj Fabrikaları
Bu PSR, HTTP sunucusu istekleri ve yanıtları oluşturmak için mesaj fabrikaları için bir arabirim tanımlar.
HTTP istekleri ve yanıtları oluşturmayı, yapılandırmayı ve dönüştürmeyi kolaylaştırır.
Sunucu tarafında HTTP mesajlarıyla çalışmayı standartlaştırır.
PSR-18: HTTP İstemcisi Arabirimi
Bu PSR, HTTP istemcileri için bir arabirim tanımlar.
HTTP istekleri yapmayı, yanıtları almayı ve işlemeyi kolaylaştırır.
Farklı HTTP istemci uygulamaları arasında taşınabilirliği sağlar.
PSR-19: API Dokümantasyonu için PHPDoc Etiketleri
Bu PSR, API dokümantasyonu için PHPDoc etiketlerini belirler.
API sınıfları, yöntemleri ve parametreleri hakkında ayrıntılı açıklamalar yapmayı sağlar.
API dokümantasyonunun tutarlılığını artırır ve otomatik dokümantasyon araçlarının kullanımını kolaylaştırır.
PSR-20: Meta-Taşınabilirlik Arabirimi
Bu PSR, PHP kodunun taşınabilirliğini artırmak için bir meta-taşınabilirlik arabirimi tanımlar.
Taşınabilirlikle ilgili bilgileri ve gereksinimleri içeren meta verileri sağlar.
Kodun farklı platformlar arasında daha kolay taşınabilmesini sağlar.
PSR-21: HTTP Mesaj Nesne Modeli
Bu PSR, HTTP mesajlarını temsil etmek için bir nesne modeli tanımlar.
HTTP istekleri ve yanıtlarını nesne olarak oluşturmayı ve işlemeyi sağlar.
HTTP mesajlarının taşınabilirliğini ve işlenmesini kolaylaştırır.
PSR-22: Konteyner Örneklemesi
Bu PSR, PSR-11 uyumlu bir konteynerin örneklemesini tanımlar.
Konteynerin nasıl kullanılacağı ve yapılandırılacağı gibi konuları kapsar.
PSR-11 uyumlu bir konteynerin uygulama örneği sağlar.
PSR-23: HTTP Mesaj Fabrikaları
Bu PSR artık geçerli değildir ve PSR-17’nin yerini almıştır.
HTTP istekleri, yanıtları ve diğer HTTP mesajlarını oluşturmak için fabrikalar sağlar.
HTTP mesajlarıyla çalışmayı kolaylaştırır ve standartlaştırır.