Middle
Para que serve a reflexão em PHP?
sobes.tech IA
Resposta da IA
A reflexão em PHP permite explorar e modificar a estrutura do código em tempo de execução. Isso inclui obter informações sobre classes, objetos, métodos, propriedades, constantes e espaços de nomes.
Principais aplicações:
- Introspeção: Obter metadados sobre o código existente (nomes de métodos, argumentos, modificadores de acesso).
- Criação dinâmica de objetos e chamada de métodos: Criar instâncias de classes e chamar seus métodos pelo nome de string.
- Desenvolvimento de frameworks e bibliotecas: Criar sistemas flexíveis capazes de analisar e interagir com o código do utilizador (por exemplo, contêineres IoC, ORM).
- Depuração e testes: Ferramentas para analisar o código em tempo de execução.
- Geração automática de documentação.
Exemplo de obtenção de informações sobre uma classe usando ReflectionClass:
<?php
// Obtenção de informações sobre a classe stdClass
$reflectionClass = new ReflectionClass('stdClass');
echo $reflectionClass->getName(); // Vai mostrar: stdClass
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
echo $method->getName() . "\n"; // Vai mostrar os nomes dos métodos (se houver)
}
Exemplo de chamada dinâmica de método:
<?php
class MyClass {
public function myMethod($arg) {
return "Olá, " . $arg;
}
}
$className = 'MyClass';
$methodName = 'myMethod';
$argument = 'mundo';
$reflectionMethod = new ReflectionMethod($className, $methodName);
$object = new $className();
$result = $reflectionMethod->invoke($object, $argument);
echo $result; // Vai mostrar: Olá, mundo