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.
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.
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.
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.
En esta lección vamos a trabajar en la estructura base para nuestro ejemplo. Para ello voy a crear y configurar un nuevo proyecto utilizando Composer y PSR-4.
Regístrate para ver ésta y cientos de lecciones exclusivas.
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:
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:
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.
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.
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.
Styde usa cookies para guardar tus preferencias y para seguimiento anónimo AceptarLeer más
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.