Sobes.tech
Middle

PHP'de yansıma ne işe yarar?

sobes.tech yapay zeka

AI'dan gelen yanıt

PHP'deki Reflection, çalışma sırasında kodun yapısını keşfetmeye ve değiştirmeye olanak tanır. Bu, sınıflar, nesneler, yöntemler, özellikler, sabitler ve isim alanları hakkında bilgi edinmeyi içerir.

Ana kullanımlar:

  • İntrospeksiyon: Mevcut kod hakkında meta veriler almak (yöntem isimleri, argümanlar, erişim belirteçleri).
  • Dinamik nesne oluşturma ve yöntem çağrısı: Sınıf örnekleri oluşturmak ve bunların yöntemlerini dize adıyla çağırmak.
  • Çerçeve ve kütüphane geliştirme: Kullanıcı kodunu analiz edebilen ve onunla etkileşime geçebilen esnek sistemler oluşturmak (örneğin, IoC konteynerleri, ORM).
  • Hata ayıklama ve test: Çalışma sırasında kodu analiz etmek için araçlar.
  • Otomatik belge oluşturma.

Bir sınıf hakkında bilgi almak için ReflectionClass kullanımı örneği:

<?php
// stdClass hakkında bilgi alma
$reflectionClass = new ReflectionClass('stdClass');

echo $reflectionClass->getName(); // Çıktı: stdClass

$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
    echo $method->getName() . "\n"; // Yöntem isimlerini yazdırır (varsa)
}

Dinamik yöntem çağrısı örneği:

<?php
class MyClass {
    public function myMethod($arg) {
        return "Merhaba, " . $arg;
    }
}

$className = 'MyClass';
$methodName = 'myMethod';
$argument = 'dünya';

$reflectionMethod = new ReflectionMethod($className, $methodName);
$object = new $className();

$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Çıktı: Merhaba, dünya