Si estás siguiendo este curso, muy probablemente ya te guste PHP; aún así, es difícil ignorar la gran cantidad de críticas que ha recibido este lenguaje desde hace varios años.

Pero estoy convencido de que el 99% de esas personas sólo conocieron PHP 4, quizás un poco de PHP 5.0, y no tienen ni idea de las novedades de PHP 7 o de features como el que aprenderemos en la clase de hoy.

En esta clase, vamos a aprender sobre el uso de Reflection con PHP, el cuál nos provee de un API para hacerle ingeniería inversa a nuestras clases.

Con las diferentes clases provistas por Reflection como: ReflectionClass, ReflectionMethod, ReflectionParameter, entre otras, vamos a poder obtener toda la información de las clases, objetos, funciones métodos, inclusive comentarios de nuestra aplicación. Por ejemplo, ¿Tiene esta clase o no un constructor? ¿Requiere este método o no de parámetros y cuáles son? Etc.

Laravel, utiliza este feature de PHP para implementar la resolución automática de clases, a través de su contenedor de inyección de dependencias; es decir, hace posible que un controlador como éste (que vimos en el curso crea tu primera aplicación con Laravel), sea instanciado automáticamente por el framework -a pesar de sus dependencias- y obtengamos el TicketRepository ya cargado como por arte de magia:

class TicketsController extends Controller {

    private $ticketRepository;

    public function __construct(TicketRepository $ticketRepository)
    {
        $this->ticketRepository = $ticketRepository;
    }

}

Pero no es magia y hoy te enseñaré exactamente cómo funciona ¿Estás listo?

Regístrate en Styde

Para obtener acceso a ésta y a todas nuestras lecciones y cursos premium:

Ver planes

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Creación de un contenedor de inyección de dependencias para PHP Lección siguiente Creación y uso de excepciones personalizadas con PHP y PHPUnit