../psr-1-standartlari

PSR-1 Standartları


You are reading an article that is more than a year old. The content might be outdated.


Table of contents


Bu bölümde standart kodlama elementlerinin kullanımı sırasında yapmanız gerekenleri öğreneceksiniz.

## ÖZET

## Dosyalar

### PHP Etiketleri

PHP kodunuz <?php ... ?> veya <?= ... ?> etiketlerini kullanmalıdır.

### Karakter Kodlaması

PHP dosyanızın kodlaması UTF-8 BOM’suz olmalıdır.

### Yan-İşlem

Bir dosyanız ya sadece deklare yada yan-işlem yapmalıdır.

“Yan-işlem” derken bahsetmek istediğim, bir yapı oluştururken hem sınıf, metot, sabit deklare edip hem de kullanılmamalıdır. Dosya include yapılmalıdır.

“Yan-işlem” sadece çıktı vermek değildir, ayrıca servise bağlanmak, include/require yapmak, .ini/.xml düzenlemek, exceptionlar, global ve statik değer düzenleme, dosyadan okuma veya dosyaya yazmak gibi işlemlerdir.

Aşağıdaki örnek, hem deklare eden hem de yan-işlem yapan bir kod örneği.

<?php
// yan-işlem: ini ayarlarını düzenleme
ini_set("error_reporting", E_ALL);

// yan-işlem: dosya include etme
include "file.php";

// yan-işlem: çıktı verme
echo "<html>\n";

// deklarasyon
function foo()
{
	// ...
}

Aşağıdaki örnek de yan-işlem yapmayan ve deklarasyon yapan bir dosyadır.

<?php
// deklarasyon
function foo()
{
	// ...
}

// koşula bağlı deklarasyon, yan-işlem **değildir**.
if ( ! function_exists("bar")) {
	function bar()
    {
    	// ...
    }
}

## Namespace ve Sınıf İsimleri

Namespaceler ve sınıflar, PSR’nin otomatik yükleme kurallarına uymalıdır. [PSR-0, PSR-4]

Bu demek oluyor ki, her sınıf kendi dosyasının içinde ve en az 1 namespace altında olmalıdır.

Sınıf isimleri baş harfleri büyük tanımlanmalıdır. (Örn; StockController)

PHP 5.3 ve sonrasını kullananlar normal namespace kullanabilir. Örnek olarak;

<?php
// PHP 5.3 ve sonrası:
namespace Vendor\Controller;

class Foo
{
}

PHP 5.2.x ve öncesini kullananlar şu şekilde kullanabilir:

<?php
// PHP 5.2.x ve öncesi:
class Vendor_Controller_Foo
{
}

## Sınıf Sabitleri, Ayarlar ve Metotlar

Buradaki “sınıf“tan kastım, tüm sınıflardır.(class, interface, trait)

### Sabitler

Sınıf sabitleri tamamen büyük olmalıdır ve alt çizgi ile kelimeler ayrılmalıdır. Örnek olarak:

<?php
namespace Vendor\Controller;

class Foo
{
    const VERSION       = '1.0';
    const DATE_APPROVED = '2014-12-12';
}

### Ayarlar

Şuan için belirlenmiş bir sabit yok. $BasHarfleriBuyuk, $ilkHarfiKucuk, veya $alt_cizgi isimlerini istediğiniz gibi kullanabilirsiniz.

Fakat unutulmamalıdır ki, adlandırma kuralları makul olmalıdır. Anlaşılır bir isim seçilmelidir.

### Metotlar

Metot isimleri ilk harfi küçük ve diğer kelime başları büyük olmalıdır. (Örn; showIndex, editPost)


Contribute to this post