30 Temmuz 2015 Perşembe

PSR - PHP Kodlama Standartları

Merhaba sevgili ziyaretçiler. Bu yazımda sizlere PHP kodlama standartları diye geçen PSR yi anlatmaya çalışacağım. Anlatıma başlamadan önce neden buna ihtiyacımız olduğuna değinmek istiyorum.
Bildiğiniz üzere ister PHP de isterseniz başka bir web veya masaüstü programlama dili kullanın yazdığınız kod çalıştığı sürece size hiç kimse karışmaz. Ancak yapmış olduğunuz projeyi belki 1 sene sonra yeni bir şeyler eklemek için elinize aldığınızda size yabancı gelebilir bunun nedeni ise belli bir standart a bağlı olmadığınız için yapmış olduğunuz kodlamaların işlevlerini çözmekte zorlanmanızdır. Diğer bir sorun ise sizin yazdığınız programın başka biri tarafından okunmasının zorlaşmasıdır.




İşte bu ve bunlar gibi farklı nedenlerden ötürü programlama dillerinde bazı standartlar vardır ki gerek yazan gerekse de sonradan programı düzenleyen kişiler için kolaylık olsun.
Umarım şimdiye kadar ki anlattığım yerler de neden bu standartları kullanmamız gerektiğini anlatabilmişimdir.
Bu yazımda yalnızca php üzerine duracağız ve PSR standartlarından bahsedeceğim.

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 ı destekler ve bazı kod yazma stilleri vardır.

- Dosyalar UTF-8 ve BOM’suz olmalıdır.
- PHP dosyaları <?php başlamalı.
- Metot isimleri CamelCase olmalıdır.
- Sınıf sabitleri tamamı büyük harften oluşmalıdır.
- Değişken isimlerinde StudlyCaps, camelCase veya hepsi küçük şekilde alt çizgi dahil kullanım olabilir. getOption, get_option
- Sınıf isimleri StudlyCaps olmalıdır.

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-3 Standartları

- Loglama üzerine kurulu standartlardır.
- 8 level log tipi olmasını öneriyor. (debug, info, notice, warning, error, critical, alert, emergency)
- 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.


Öne Çıkan Yayın

NodeJS İle Basit Chat Uygulaması

Merhaba arkadaşlar bu yazımda sizelere nodejs ile genel olarak yapılan chat uygulamasından bahsedeceğim. NodeJs hakkında zaten internette fa...