Sobes.tech
Middle

PHP-də refleksiya nə üçün lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

PHP-də Reflection kodun quruluşunu işləmə zamanı araşdırmağa və dəyişdirməyə imkan verir. Bu, sinflər, obyektlər, metodlar, xüsusiyyətlər, sabitlər və ad məkanları haqqında məlumat əldə etməyi əhatə edir.

Əsas tətbiqlər:

  • İntrospeksiya: Mövcud kod haqqında meta məlumatlar əldə etmək (metod adları, arqumentlər, giriş modifikatorları).
  • Dinamik obyekt yaratmaq və metodları çağırmaq: Sinif nümunələri yaratmaq və onların metodlarını sətir adı ilə çağırmaq.
  • Çərçivə və kitabxana inkişafı: İstifadəçi kodunu analiz edə bilən və onunla qarşılıqlı əlaqə qura bilən çevik sistemlər yaratmaq (məsələn, IoC konteynerləri, ORM).
  • Hata ayıklama və test: Kodun işləmə zamanı analiz üçün alətlər.
  • Avtomatik sənədləşdirmə yaradılması.

ReflectionClass istifadə edərək sinf haqqında məlumat alma nümunəsi:

<?php
// stdClass haqqında məlumat alma
$reflectionClass = new ReflectionClass('stdClass');

echo $reflectionClass->getName(); // Nəticə: stdClass

$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
    echo $method->getName() . "\n"; // Metod adlarını göstərəcək (əgər varsa)
}

Dinamik metod çağırış nümunəsi:

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

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

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

$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Nəticə: Salam, dünya