__callStatic Metodu
__callStatic metodu, PHP'de var olmayan veya erişilemeyen bir statik metot çağrılmaya çalışıldığında otomatik olarak çağrılan büyülü bir metottur. İlk parametre olarak çağrılan metodun adını, ikinci parametre olarak da iletilen argümanların bir dizisini alır.
Sözdizimi
public static function __callStatic(string $name, array $arguments);
Örnek
__callStatic metoduna sahip bir sınıf oluşturalım ve var olmayan bir statik metot çağırmaya çalışalım:
<?php
class MyClass {
public static function __callStatic($name, $args) {
echo "Called static method '$name' with arguments: ";
print_r($args);
}
}
MyClass::nonExistentMethod(1, 2, 3);
?>
Kodun çalıştırılmasının sonucu:
Called static method 'nonExistentMethod' with arguments: [1, 2, 3]
Örnek
Farklı türlerde nesneler oluşturmak için basit bir cephe uygulayalım:
<?php
class Factory {
public static function __callStatic($name, $args) {
if (strpos($name, 'create') === 0) {
$className = substr($name, 6);
return new $className(...$args);
}
throw new Exception("Method $name not found");
}
}
class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>
Kodun çalıştırılmasının sonucu:
true