PHP Attributes ile Özel Annotation Yazmak

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 21

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP Attributes ile Özel Annotation Yazmak​


PHP 8.0 öncesinde annotation ihtiyacını Doctrine Annotation kütüphanesi karşılardı; bu yorum bloklarını ayrıştırmak yük yaratırdı. Native Attributes derleme zamanında kullanılabilir meta veri sağlar.

Attribute Tanımlama​

PHP:
#[Attribute(Attribute::TARGET_METHOD)]
class Route {
    public function __construct(
        public readonly string $path,
        public readonly string $method = 'GET',
    ) {}
}

Kullanma​

PHP:
class UserController {
    #[Route('/users', 'GET')]
    public function list(): Response { ... }
}

Okuma​

PHP:
$ref = new ReflectionMethod(UserController::class, 'list');
$attrs = $ref->getAttributes(Route::class);
$route = $attrs[0]->newInstance();
echo $route->path; // /users

Kendi DI container'ınızı, router'ınızı veya validation sisteminizi yazmak istiyorsanız Attributes, Reflection API ile birlikte temel yapı taşı haline gelir.
 
Geri
Üst