İçeriğe geç

PHP Kodlama Standartları

PHP dil olarak herhangi bir yazım standardına sahip değildir, bu nedenle projelerde yada kütüphanelerde değişik yazım stilleri görebilirsiniz. Bu durum hem bizim başka kodları okumamızı zorlaştırır, hemde bizden sonra gelen yazılım geliştiricilerinin bizim kodlarımızı okuması zorlaşır. Yani kısaca her yönden zararlı çıkan bizler oluyoruz. Bu sebeple dünyaca geliştiricilerinin belirledikleri PSR standartları bulunmaktadır. Bu standartlar büyük projelerde, frameworklerde görmeniz mümkün. Hal böyle olunca bizimde bu standartları öğrenmemiz iyi, kullanmamız çok çok iyi olacaktır.

PSR-0

  • Autoloading yapısı üzerine kurulu bir mimariye sahiptir.
  • Her sınıfın bir namespace’i olmalıdır.
  • Her namespace’in bir üst namespace’i olmalıdır. Yani;  \Proje_adi\namespace\class\
  • Her namespace’in alt namespace’leri olabilir.
  • Her namespace  “_” işareti, / (DIRECTORY_SEPARATOR) olarak algılanmalıdır.
  • Proje adında, sınıf isimlerinde büyük küçük harf kombinasyonları olabilir.

PSR-0 Örnekleri:

  • \Doctrine\Common\IsolatedClassLoader =>/path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
  • \Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php
  • \Zend\Acl => /path/to/project/lib/vendor/Zend/Acl.php
  • \Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php

PSR-1

  • PSR-1 standartları PSR-0 standartlarını aynen kabul eder ve bu standartta genel kod yazım stili üzerinde kurallar verir.
  • PHP dosyaları <?php başlamalı.
  • Dosyalar UTF-8 ve BOM’suz olmalıdır.
  • Sınıf isimleri StudlyCaps olmalıdır.
  • Sınıf sabitleri tamamı büyük harften oluşmalıdır.
  • Metot isimleri CamelCase olmalıdır.
  • Değişken isimlerinde StudlyCaps, camelCase veya hepsi küçük şekilde alt çizgi dahil kullanım olabilir. getOption, get_option

PSR-1 Örnek

PSR-2 Standatları

  • PSR-1’i destekler.
  • Her satırda önerilen 80 karakter, max 120 karakter olmalıdır.
  • Satırlarda tab yerine 4 boşluk kullanılmalıdır. (whitespace).
  • Namespace, class ismi, methot isminden sonra 1 boşluk bırakılmalı.
  • Metot, sınıf oluşturulduğunda açılan süslü parantezler “{” ismin bitişinde değil bir alt satırda açılmalı.
  • Operatörler ile değişkenler arasında bir karakter boşluk bırakılmalı.
  • true,false,null küçük kullanılmalı.

PSR-2 Örnek:

PSR-3 Standartları

  • Loglama üzerine kurulu standartlardır.
  • 8 level log tipi olmasını öneriyor. (debug, info, notice, warning, error, critical, alert, emergency)
  • Her metot string veya obje kabul edebilir.
  • Mesaj içerisindeki placeholder lar, verilen array içerisindekiler ile değiştirilir.
  • Mesaj içerisindeki placeholder lar {} arasında yazılır.
  • Placeholder lar A-Z, a-z, 0-9, _ karakterlerinden oluşabilir.

PSR-3 Örnek

 

Kaynak: http://www.php-fig.org/

Kategori:PHP
  • Merhaba,
    PSR-1 de ikinci maddeyi düzeltmeniz gerekiyor.
    * Php dosyaları <?php veya <?= ile başlamak zorundadır.

    // <?= ile biten php dosyası olmaz. Ayrıca yorum sisteminde disqus gibi daha modern çözümleri tercih etmelisiniz.

    • Enes Gür

      Uyarınız için teşekkürler. Yakın zamanda wordpress yerine daha farklı bir sisteme geçiş planlıyorum. Bu geçiş sürecinde önerinizi değerlendireceğim.

  • Pingback: eclipse psr standartları/ PHP Kodlama Standlartları | .:: www.selmantunc.com ::.()

  • albay sarı

    hocam güzel ve başarılı bir anlatım oluşmuş vakit bulursanız psr-7 kadar anlatım yapabilirseniz sevinirim.

  • Yukarıdaki standartları, http://www.php-fig.org/psr/ adresinden aldığınızı ve orada daha detaylı açıklamaların olduğunu da belirtirseniz, gerçekten iyi olur.

    • Enes Gür

      Kaynak bilgisini atlamışım. Eklendi teşekkürler.