Repositorio base (repaso de clases abstractas y herencia)

TeachMe es un proyecto sencillo, de tan sólo unas 5 tablas, pero ¿Qué pasaría si necesitas trabajar en un proyecto con decenas de modelos? Lo más probable es que necesites repetir los mismos métodos para uno o más repositorios y esto no cumple con el principio DRY. Este problema se puede resolver de varias maneras, una de ellas es implementar un repositorio base (así como creamos un seeder base o como Laravel dispone de un controlador base).

Entonces en esta clase crearé dicho repositorio base, y aprovecharé la ocasión para darte un repaso sobre herencia en la programación orientada a objetos y sobre clases abstractas.

Mira el código en GitHub: actual, resultadocomparación.

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

Como instalar Laravel 5.1

laravel-5-1-instalacion-y-primer-proyectoYa con la nueva versión de Laravel  disponible, veamos como instalarla. Uno de sus nuevos requerimientos es el de utilizar PHP 5.5.9 o superior, así que quizás tengas que hacer algunas modificaciones en tu entorno de trabajo. Ver post

Introducción al patrón repositorio

El patrón repositorio, actua como una capa intermedia entre tu aplicación y la base de datos.

La idea es encapsular el código que interactúa con la base de datos: es decir aquel que genera consultas SQL para traer datos de la base de datos hacia la aplicación o inserta, actualiza y elimina dichos datos.

Cuando usamos Laravel, este código está escrito con el ORM Eloquent o con el constructor de consultas Fluent, y suele ser muy limpio, sin embargo a medida que los requerimientos del proyecto crecen, este código también crece y lo más conveniente es separarlo a otra capa, que no sólo reducirá la cantidad de código del controlador, sino que hará nuestras consultas reusables en otros controladores y partes de nuestra app, y por otro lado también nos permitiría ejecutar pruebas (tema que veremos en otros cursos).

Dividí esta lección en 3 temas para facilitar su estudio y revisión posterior:

En esta lección, nos encargaremos de mover el código que se encarga de generar las consultas para mostrar tickets, del controlador a nueva capa llamada repositorio.

Además me tomaré unos momentos para corregir un par de bugs de la página de detalles de tickets.

Mira el código en GitHub: actual, resultadocomparación.

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

Subconsultas con SQL y Eloquent (selectRaw)

Ya estamos obteniendo el autor utilizando eager loading, pero aún nos falta obtener la cantidad de votos y de comentarios en una sola consulta.

En programación, hay muchas maneras de solucionar un problema, hoy les enseñaré cómo crear subconsultas SQL para obtener información de otras tablas (en nuestro caso la cantidad de votos y la cantidad de comentarios) dentro de la consulta a la tabla de tickets.

Las subconsultas en SQL como su nombre lo indica son consultas que se escriben y ejecutan dentro de otras consultas de SQL.

Para facilitar tanto el aprendizaje como el desarrollo del código, lo primero que haremos será probar las subconsultas dentro de PHPMyAdmin (o Sequel Pro o cualquier otra aplicación que estés usando para manejar la base de datos) y luego pasaremos el código a Laravel.

Mira el código de esta lección en GitHub: actual, resultadocomparación.

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

Combinar HTML y PHP sin morir en el intento

combinar-html-y-php

Todos amamos las sintaxis que nos provee el motor de plantillas Blade para escribir nuestras vistas, y no es el único, hay otros motores de plantillas geniales como Twig o Smarty, escritos en y para PHP.

Pero imaginemos por un momento que tienes un proyecto que no está usando ningún framework: quizás te toque escribir código para WordPress como a mí, o editar algo de «legacy code» de un proyecto, e instalarle Smarty o algún otro template engine no es una opción viable. 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.