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 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