Uso de interfaces o clases abstractas con el Patrón Builder

Patrones de Diseño

En esta lección aplicaremos lo aprendido sobre Interfaces y Polimorfismo en el Curso de programación orientada a objetos con PHP para finalizar la aplicación del Patrón Builder, permitiendo así que podamos generar nuevos objetos Builder y asignarlos para construir objetos de diversos tipos. También veremos un poco de teoría sobre el Patrón Builder, sus participantes y los resultados de aplicarlo.

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

Aplicación del Patrón Builder (Composición de Objetos)

Patrones de Diseño

El Patrón Builder nos permite separar el proceso de construcción de un objeto de la forma en que dicho objeto es representado, de manera que el mismo proceso de construcción pueda crear resultados diferentes. El código resultante de la lección anterior aún no refleja esto, así que en esta lección voy a utilizar composición de objetos para lograr un diseño más flexible y la aplicación exitosa del Patrón Builder.

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

Simplificar la construcción de objetos con el Patrón Builder

Patrones de Diseño

Como aprendimos anteriormente, el Patrón Composite nos permite componer diferentes objetos en una estructura de árbol para generar un resultado complejo, sin embargo los pasos para lograr dicho resultado son tediosos y hasta propensos a errores. En esta lección utilizaremos el Patrón Builder el cual nos permitirá simplificar el proceso de construcción de dichos objetos.

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

Calistenia de objetos en PHP: un solo nivel de indentación por método

Refactorización con PHP

La calistenia de objetos son una serie de ejercicios que puedes aplicar para mejorar la legibilidad del código. En esta lección, utilizaré uno de estos ejercicios (el que nos indica que sólo puede haber un máximo de un (1) nivel de indentación por método) para continuar la refactorización de la clase de ejemplo, de forma de simplificar la complejidad que aún tenemos dentro de los métodos y hacerlos de más fácil lectura.

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

¿Cuántas líneas de código debe tener una función? (Ejemplo de Refactorización)

Banner funciones PHP

Vi esta pregunta hace poco en un foro de programación y me respuesta fue que en teoría una función debería contener unas 5 líneas de código o menos. Incluso he visto funciones muy útiles que contienen una sola línea de código. Si esta regla te parece exagerada o quieres saber cómo puedes escribir procedimientos completos en funciones de tan pocas líneas, por favor acompáñame en el resto del artículo:

Ver post

¿Dónde y cómo comenzar a aprender Laravel?

Aquí en Stydenet hemos creado muchísimos tutoriales y videotutoriales (llevamos más de 700) de Laravel, PHP y tecnologías relacionadas. Además decidimos agruparlos en diferentes series y cursos para facilitar su aprendizaje.

Puesto que todos estamos aprendiendo pero no todos tenemos el mismo nivel, además tanto el lenguaje PHP como el framework Laravel son muy completos y constan de muchos componentes, desde lo básico (rutas, vistas) hasta lo avanzado (inyección de dependencias, pruebas unitarias), es imposible crear un solo curso para todos. Es por ello que en Styde.net hemos didivido nuestro material en diversos cursos, cada uno enfocado en un nivel específico y con una meta específica:

Ver post

Uso de repositorios locales con Composer

En la lección anterior creamos un nuevo proyecto “container”, en el cual incluimos parte del código desarrollado en la parte 2 de este curso, agregando algunos cambios necesarios, por supuesto, todo esto haciendo uso de pruebas unitarias. Aunque todas las pruebas están pasando hasta este momento, debemos hacer algunos arreglos adicionales para poder utilizar este componente. En la lección de hoy finalmente vamos a incluir el componente externo “container” creado dentro de nuestro mini proyecto.

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

Creación de un paquete con Composer y PHPUnit

En lecciones anteriores hemos venido desarrollando desde cero un contenedor de inyección de dependencias en PHP, ahora en esta tercera parte del curso Crea componentes para PHP y Laravel aprenderás a publicar un componente o paquete de PHP en Packagist.

Para esta primera lección prepararemos un nuevo proyecto que contendrá el contenedor que hemos desarrollado, extrayendo las clases referidas a él de nuestro mini proyecto.

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

PHP Traits en Laravel 5.1

php-traits-laravel-5-1

Uno de los pilares de la programación orientada a objetos es la jerarquía, en la cual podemos hablar de la herencia simple y la herencia múltiple. La herencia es un mecanismo que nos permite crear una clase a partir de la definición de una (herencia simple) o varias (herencia múltiple) ya existentes. Sin embargo, muchos de los lenguajes de programación no soportan la herencia múltiple. PHP es uno de ellos, es decir que con este lenguaje si queremos obtener las propiedades y métodos de una clase para crear una nueva clase solamente lo podemos hacer de una única clase.

Pero trabajar con herencia múltiple nos da ventajas en cuanto a reutilización de código y por tanto, para solventar ese problema a partir de la versión PHP 5.4 se agregó un mecanismo que nos permite emular la herencia múltiple: Traits.

Ver post

Suscríbete a nuestro boletín

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