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.