Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP 8’de Öznitelikler (Attributes): Sözdizimi ve Kullanımı

XxZeMaHSeRxX

“.”
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Paylaşım
TM Üye
Katılım
2 Ara 2024
Konular
186
Mesajlar
1,979
Çözüm
8
Online süresi
5mo 13d
Reaksiyon Skoru
1,493
Altın Konu
1
Başarım Puanı
206
MmoLira
12,354
DevLira
36
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

1. Öznitelik (Attribute) Nedir?


PHP 8 ile birlikte gelen Attributes (Öznitelikler) özelliği, sınıflara, metodlara, özelliklere (properties), fonksiyonlara veya parametrelere meta veri (ek bilgi) eklemeyi sağlar.

Bu, PHPDoc yorumları veya harici açıklama sistemleri yerine artık yerleşik bir PHP özelliği olarak kullanılabilir.

2. Ö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.

3. PHP 8 Öncesi Durum

PHP 8’den önce bu tür meta veriler genellikle yorum satırlarında PHPDoc şeklinde yazılırdı:

Kod:
/**
 * @Route("/users", methods={"GET"})
 */
class UserController {
    // ...
}

Bu yaklaşımda PHP’nin yorumları yorumlayabilmesi için harici bir parser (yorum okuyucu) kullanılması gerekiyordu.

4. PHP 8’de Öznitelik Sözdizimi


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

Örnek:

Kod:
#[Route('/users', methods: ['GET'])]
class UserController {
    // ...
}


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

5. Temel Sözdizimi

#[AttributeAdı(argüman1: değer1, argüman2: değer2)]

Örnekler:

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

Birden fazla öznitelik aynı yere yazılabilir:

#[Serializable, Deprecated]
class EskiSinif {}

6. Öznitelik Tanımlama


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

Örnek:

#[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 {}​
 
Paylaşım için teşekkürler :)
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst