Esta es una nueva lección de la segunda parte de nuestro curso Crea componentes para PHP y Laravel , en esta clase aprenderás a crear una clase genérica que pueda ser implementada para crear un Facade en nuestro proyecto, pero ¿ Por qué hacer uso de una clase genérica ? Bien, nuestro proyecto es relativamente sencillo, simplemente necesitamos crear un método para una clase y haremos uso de un Facade, pero cuando tenemos un sistema un poco más complejo debemos crear una solución más genérica que permita crear e implementar todos los Facades que necesitemos de una forma más optima.
Vamos a crear esta clase genérica para implementar un nuevo Facade para nuestro Access Handler, pero va a ser lo suficientemente versátil para poder ser usada posteriormente en caso de ser necesario, no sólo para el Access Handler sino para cualquier otra clase del proyecto.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Duilio Palacios 11/10/2015 PHP, Programación orientada a objetosComentarios desactivados en Implementación de «Facades» en un proyecto de PHP
En esta lección de la segunda parte del curso Crear componentes para PHP y Laravel vamos a empezar a desmitificar la magia detrás de los Facades de Laravel e implementar esa forma de trabajar en nuestro mini proyecto.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Hasta el momento hemos probado el funcionamiento de nuestra API utilizando el componente de pruebas de Laravel y nuestro navegador para obtener los datos de un usuario como lo hicimos en la lección sobre Route Model Binding, en este último caso, todo funcionaba bien, pero cuando deseamos enviar una petición de tipo POST , no podemos realizarlo directamente desde la url de nuestro navegador; para ello podemos hacer uso de Postman que es un plugin de Chrome que nos permite simular peticiones web de tipo JSON a través de un formulario en nuestro navegador.
Como hemos visto en lecciones anteriores Laravel nos provee una base bien estructurada para el desarrollo de APIs y gracias al uso del componente de rutas podemos definir recursos con los cuales podemos interactuar fácilmente desde cualquier otra aplicación.
En la clase 8 de este curso, creamos un contenedor de inyección de dependencias atado a la lógica de nuestro mini proyecto. A partir de la clase 9, comenzamos a crear un contenedor de inyección de dependencias genérico, y en esta clase vamos a implementarlo en nuestro mini proyecto.
Regístrate para ver ésta y cientos de lecciones exclusivas.
En la lección anterior aprendimos sobre la estructura básica de una API REST con Laravel 5.1 mediante la creación de recursos, en esta ocasión vamos a agregar la lógica correspondiente al recurso de usuarios que nos permita crear, almacenar, modificar y eliminar un registro.
Para verificar que todo se ejecute correctamente haremos uso del componente de pruebas de Laravel, en este caso no explicaremos en detalle cómo se utiliza dicho componente pero si estas interesado en aprender un poco más de él puedes ingresar al curso Curso introductorio de Laravel 5.1 dónde encontraras una sección completa dedicada a este tema.
Duilio Palacios 19/09/2015 PHP, Programación orientada a objetosComentarios desactivados en Compartir instancias dentro del contenedor de inyección de dependencias (singleton)
En la lección anterior sobre Singleton, aprendimos que en realidad es un anti patrón que limita y hasta daña el diseño del código de nuestras clases o incluso de toda la aplicación como tal.
Pero es cierto que muchas veces solamente necesitamos una instancia, de las clases con las que estamos trabajando. Especialmente si estás creando o utilizando clases como las que incluye el framework Laravel como por ejemplo: Session Managers, Authenticators, Database, etc.
En este escenario no creamos o implementamos singleton directamente en cada clase, dado que no es correcto como ya aprendimos, sino que por el contrario nos apoyamos una vez más en el contenedor de inyección de dependencias, como aprenderemos en la clase de hoy:
Regístrate para ver ésta y cientos de lecciones exclusivas.
Continuando con nuestro Curso de creación de componentes para PHP y Laravel, en la lección de hoy aprenderemos sobre los patrones de diseño, específicamente el patrón (o también llamado anti patrón) Singleton pero ¿Qué es un patrón de diseño?.
Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Los patrones de diseño se utilizan con la finalidad de estandarizar la forma en que desarrollamos el código ofreciendo soluciones reusables. Es importante señalar que el uso e implementación de un patrón de diseño no es obligatorio, pero en algunos casos es recomendado como parte de las buenas prácticas.
En este caso, cómo lo mencionaba anteriormente veremos qué es y como implementar el patrón Singleton.
Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Hoy en día, frameworks como Symfony o Laravel trabajan para que sus componentes sean lo más desacoplados que sea posible, y pueda reemplazarse la implementación de ciertas clases por otra. Logrando así un código más escalable y flexible. Para ello, ambos frameworks se apoyan muchísimo en el patrón de inyección de dependencias. Este patron es tan importante, que hemos dedicado toda la parte 2 de nuestro curso de creación de componentes para PHP y Laravel, a hablar de él, incluso ¡Estamos creando nuestro propio contenedor de inyección de dependencias!
Con el patrón de inyección de dependencias, los objetos, de los cuales una clase depende, son inyectados a través del constructor o de métodos setters. Pero no todas las clases dependen únicamente de otras clases, muchas veces, por ejemplo, cuando utilizamos una clase para conectarnos a una base de datos o API, esta necesita de valores escalares, como pueden ser las cadenas para conectarse a una URL o host, un nombre de usuario y una clave.
El día de hoy implementaremos este feature dentro de nuestro contenedor, mientras aprendemos más sobre el uso de Reflection en PHP.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Una excepción es un evento inesperado que ocurre durante la ejecución de un programa e interrumpe la ejecución normal del mismo.
Una excepción es lanzada desde un método cuando las condiciones para la ejecución normal de dicho método no se cumplen, y luego puede ser atrapada en algún lugar del sistema utilizando un bloque try / catch.
La idea cuando estamos creando nuestros métodos y necesitamos crear una excepción, es crear una clase personalizada cuyo nombre debe describir qué componente produjo el error o cuál fue el error.
Además, aunque se produzca una excepción no «atrapada» en nuestro código, podemos, de igual forma, escribir una prueba con PHPUnit para probar este comportamiento.
Todo esto lo veremos en detalle en la lección de hoy:
Regístrate para ver ésta y cientos de lecciones exclusivas.
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.