Introducción a los contenedores de inyección de dependencias

¡Hola! bienvenido a la lección 3 de la segunda parte del Curso: Crea componentes para PHP y Laravel.

Para reducir la cantidad de código que necesitamos cuando implementamos el patrón de inyección de dependencias, debemos crear otro objeto llamado contenedor de inyección de dependencias, el cuál será un objeto que conocerá cómo instanciar y «ensamblar» otros objetos. De esta manera podremos extraer la lógica requerida para crear el access handler y demás clases de nuestro proyecto demo a otra clase, como veremos a continuación…

Regístrate para ver ésta y cientos de lecciones exclusivas.

Uso del patrón de inyección de dependencias dentro de un proyecto

En esta lección 2 de la segunda parte del curso Crear componentes con PHP y Laravel, vamos a empezar implementar el Access Handler en nuestro proyecto y nos encontraremos de frente con los problemas de usar el patrón de inyección de dependencias. Poco a poco iremos analizando las causas y posibles soluciones que nos permitirán implementar código bien diseñado de una manera fácil.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Creación de un mini proyecto web con PHP

Bienvenido a la segunda parte del curso Crea componentes para PHP y Laravel.

En esta lección, nos apartaremos un momento de lo que hemos aprendido, sólo para preparar un escenario donde podamos implementar el AccessHandler realizado en lecciones anteriores y profundizar en la implementación del patrón de inyección de dependencias en todos los objetos, sin que se vuelva cuesta arriba instanciarlos y usarlos.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Creación y uso de Interfaces y Stubs

Cuando trabajamos con la programación orientada a objetos hay términos que debemos entender y uno de ellos es el polimorfismo, el cual es la capacidad de que un mismo método pueda tener distintos comportamientos dependiendo del contexto en el que se está ejecutando.  Esto en PHP se puede lograr por ejemplo con el uso de interfaces.

En esta lección 4 del curso Crea componentes para PHP y Laravel aprenderás a crear e implementar interfaces así como stubs que te ayudarán a hacer el código más reusable y desacoplado,  además de que facilitará la implementación de las pruebas unitarias.

Esto nos permitirá ya no trabajar con un archivo para manejar las sesiones, sino que usaremos un nuevo manejador (driver) con el cual podemos cargar datos de sesión con un simple array. Esto es un ejemplo muy sencillo de cómo funciona el manejador de Sesiones en frameworks como Symfony o Laravel.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Inyección de dependencias

Esta es la lección 3 del curso Crea componentes para PHP y Laravel.

En esta oportunidad se tratará un punto importante de la programación orientada a objetos, no sólo en PHP sino en general, como es la inyección de dependencia que servirá de mucha ayuda para desacoplar las clases creadas en la lección anterior: AccessHandler y sobretodo SessionManager.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Dependencias y código acoplado

Cuando trabajamos en programación orientada a objetos es normal encontrarse con clases y objetos que interactuan y dependen unos de otros, la idea de ello es aprovechar al máximo las virtudes de cada uno y evitar reescribir código innecesario.

Sin embargo esto nos puede llevar a código que esté innecesariamente «acoplado», es decir objetos y clases que no puedan funcionar sin la presencia de otros objetos y clases.

Esto trae varios problemas, por un lado el código es menos reusable y por otro lado es más difícil de probar y depurar.

En la lección de hoy veremos un ejemplo de esto, mientras avanzamos en la creación de algunas clases base que nos permitirán más adelante comparar código y aprender sobre la inyección de dependencias y otros conceptos más avanzados.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Creación de un nuevo proyecto con Composer y PHPUnit

¡Hola! Bienvenido al nuevo curso Crea Componentes para PHP y Laravel.

Sé que estás impaciente en aprender cómo crear componentes, subirlos a packagist, obtener miles de descargas y estrellas en GitHub y hacerte famoso, nosotros también, pero antes de comenzar, hay muchos conceptos que necesitarás aprender, puesto que no sólo son necesarios para crear un buen componente, sino que también te ayudarán muchísimo a entender mejor Laravel y otros frameworks o herramientas con las que desarrollas a diario.

Quizás aún arrugas la cara cuando oyes la palabra “Facade” o los términos “inyección de dependencias” o “pruebas unitarias” te producen dolor de cabeza. No te preocupes, después de terminado este curso esos y muchos otros paradigmas avanzados te serán familiares y tu nivel como desarrollador aumentará muchísimo.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Modularidad en la programación orientada a objetos


modularidad-poo

La modularidad consiste en dividir un programa en módulos que puedan compilarse por separado, sin embargo tendrá conexiones con otros módulos.

La modularidad también tiene principios y son los siguientes:

  1. Capacidad de descomponer un sistema complejo.
  2. Capacidad de componer a través de sus módulos.
  3. Comprensión de sistema en partes.

Pero.. ¿Qué significa cada módulo?

Ver post

Encapsulamiento en la programación orientada a objetos

encapsulamiento-poo

El encapsulamiento en la programación orientada a Objetos ¿Recuerdan que este también es un elemento fundamental del modelo de objetos? sabía que esa era la respuesta, entonces empezaremos con la lección.

Definamos Encapsulamiento:

Es el proceso de almacenar en una misma sección los elementos de una abstracción que constituyen su estructura y su comportamiento; sirve para separar el interfaz contractual de una abstracción y su implantación.

Ver post

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.