İlan
04 Haz 2026 21 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme PHP 8'de Öznitelikler (Attributes): İmkanlar ...
İlan Yan banner placeholder

PHP 8'de Öznitelikler (Attributes): İmkanlar ve Örnek Uygulamalar

henoxdev 28.04.2026 04:15 579 görüntüleme 2 cevap
Son Mesaj
henoxdev
Üye
Üye
Katılım24 Mar 2026
Konular5
Mesajlar51
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
28.04.2026 04:15 #1
PHP 8'de Öznitelikler: Sözdizimi ve Kullanımı

PHP 8'in yeni özelliklerinden biri olan Öznitelikler (Attributes), kodun içindeki sınıflara, metodlara, özelliklere (properties), fonksiyonlara veya parametrelere ek anlam veya davranış bilgisi kazandırma imkânı sunar. Bu özellik, PHPDoc yorumları veya harici açıklama sistemleri yerine artık yerleşik bir PHP özelliği olarak kullanılabilir.

Özniteliklerin Amacı

Öznitelikler, bir koda ek anlam veya davranış bilgisi kazandırmak için kullanılır. Bu bilgiler genellikle framework'ler, kütüphaneler veya sistemler tarafından okunur ve işlenir. Örnek kullanım alanları:

- Bir sınıfı belirli bir route (URL) ile ilişkilendirmek.
- ORM sistemlerinde (örneğin Doctrine) tablo sütunlarını tanımlamak.
- Test veya güvenlik açıklamaları eklemek.

PHP 8 Öncesi Durum

PHP 8 öncesinde meta veriler genellikle yorum satırlarında PHPDoc şeklinde yazılırdı. Bu yaklaşımda PHP'nin yorumları yorumlayabilmesi için harici bir parser (yorum okuyucu) kullanılması gerekiyordu.

PHP 8'de Öznitelik Sözdizimi

PHP 8 ile artık öznitelikler #[...] biçiminde doğrudan kodun içine yazılabilir. Örneğin:

#[Route('/users', methods: ['GET'])]

class UserController {
// ...
}

Böylece #[Route(...)] bir özniteliktir ve PHP tarafından okunabilir meta veri olarak kabul edilir.

Temel Sözdizimi

Öznitelik sözdizimi, # işaretinden sonra AttributeAdı ile başlayan parametrelere sahip bir dizi ile gösterilir. Örnekler:

- #[Loggable]
- #[Table(name: "users")]
- #[Column(type: "string", length: 255)]

Birden fazla öznitelik aynı yere yazılabilir:

- #[Serializable, Deprecated]

class EskiSinif {}

Öznitelik Tanımlama

Kendi özel özniteliklerinizi de oluşturabilirsiniz. Bunun için #[Attribute] özniteliğiyle işaretlenmiş bir sınıf tanımlanır. Örneğin:

#[Attribute]

class Route {

public function __construct(

public string $path,

public array $methods = ['GET']

) {}

}

Bu tanımdan sonra bu özniteliği kullanabilirsiniz:

#[Route('/home', methods: ['GET', 'POST'])]

class HomeController {}
TelefonYorumCom
Üye
Üye
Katılım16 Oca 2026
Konular11
Mesajlar59
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
05.05.2026 03:33 #2
Paylaşım için teşekkürler
Andacgvn
Üye
Üye
Katılım27 Kas 2025
Konular11
Mesajlar67
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
05.05.2026 09:16 #3
Paylaşım için teşekkürler.
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder