Estoy tratando de usar reflexión PHP para cargar dinámicamente los archivos de clase de los modelos en función del tipo de parámetro que está en el método del controlador. Aquí hay un ejemplo de método de control.Reflexión de PHP - Obtener método Parámetro Tipo como cadena
<?php
class ExampleController
{
public function PostMaterial(SteelSlugModel $model)
{
//etc...
}
}
Esto es lo que tengo hasta ahora.
//Target the first parameter, as an example
$param = new ReflectionParameter(array('ExampleController', 'PostMaterial'), 0);
//Echo the type of the parameter
echo $param->getClass()->name;
Esto funciona, y la salida sería 'SteelSlugModel', como se esperaba. Sin embargo, existe la posibilidad de que el archivo de clase del modelo no se haya cargado todavía, y el uso de getClass() requiere que se defina la clase. Parte de por qué lo hago es cargar automáticamente cualquier modelo que requiera una acción de controlador. .
¿Hay alguna manera de obtener el nombre del tipo de parámetro sin tener que cargar primero el archivo de clase?
¿Qué es '$ p'? ¿Te refieres a '$ param'? –
A menos que la clase Reflection carezca de una información vital en sus documentos, no creo que pueda obtener el tipo insinuado sin tener cargada la clase. – simshaun
@simshaun: No. La clase necesita ser cargada, de lo contrario 'getClass' arroja' ReflectionException'. – netcoder