Ir al contenido principal

Entradas

El Problema de N+1 en Laravel: Optimizando las Consultas de Bases de Datos para un Mejor Rendimiento

  El problema de N+1 es un desafío común en el desarrollo de aplicaciones Laravel que puede afectar significativamente el rendimiento de la aplicación. Este problema se presenta cuando, al recuperar una colección de modelos Eloquent junto con sus relaciones, se realiza una consulta adicional para cada modelo en lugar de aprovechar la técnica de eager loading . La consecuencia directa es un aumento exponencial en el número de consultas a la base de datos, lo que puede resultar en tiempos de carga lentos y afectar negativamente la eficiencia de la aplicación. Solución al Problema de N+1 en Laravel: (Eager Loading) La solución clave para abordar el problema de N+1 en Laravel es utilizar la Eager Loading . Laravel proporciona una elegante manera de cargar relaciones relacionadas con los modelos Eloquent para evitar consultas adicionales innecesarias. Aquí hay un ejemplo sencillo que ilustra el problema de N+1 y cómo solucionarlo: Supongamos que tenemos un modelo Post que tiene una ...

Laravel y los Principios de Arquitectura SOLID

Una Alianza Robusta para el Desarrollo de Software. Laravel, el popular marco de desarrollo web en PHP, ha ganado reconocimiento no solo por su elegante sintaxis y facilidad de uso, sino también por su compromiso con los principios de diseño de software, especialmente los principios SOLID. Estos principios, acuñados por Robert C. Martin, son guías fundamentales para crear sistemas flexibles, mantenibles y escalables. Laravel, desde sus inicios, ha abrazado estos principios, estableciendo así una base sólida para el desarrollo de aplicaciones web modernas. 1. Principio de Responsabilidad Única (SRP): El SRP establece que una clase debe tener una única razón para cambiar. Laravel fomenta este principio al proporcionar un sistema de controladores claro y coherente. Los controladores en Laravel se centran en una tarea específica, asegurando que cada clase tenga una responsabilidad única y facilitando la extensión y mantenimiento del código. 2. Principio de Abierto/Cerrado (OCP): El OCP s...

Animal Crossing Nintendo Switch, una experiencia que no me terminó de cuajar

  He sido aficionado a los juegos de construcción y/o granjitas desde la época de Farmville en Facebook. Desde que mataron a Zynga por aquello de quitarle Flash a los navegadores no he vuelto a saber de algún juego que me enganche o tenga lo necesario para engancharme como lo hizo en su momento Farmville. Cuando vi de que iba Animal Crossing lo compré para mi nintendo Switch porque vi un estilo algo parecido en los gráficos (estilo QT le llamo yo jaja) y supose que me daría la misma sensación que me provocaba el otro juego. Primero quiero decir las cosas malas que me topé o la experiencia no tan agradable que tuve al inciar a jugar, así que voy a listarlas: 1) Aprender a jugar es algo difícil. Y no me refiero a los controles, sino más bien a lo que hay que hacer y lo que se puede hacer. Ya que tuve que ver muchos videos primero para entenderlo, y eso hace que el inicio sea lento y tengas que ver muchas horas de video para entender de que va y como va la cosa, por que el juego no tr...

Tutorial de Gulp y Sass (primeros pasos)

Gulp es una tecnología de Javascript desarrollada por la comunidad de GitHub que permite (entre otras cosas) la compilación en tiempo real de los archivos Css cuando usamos lenguaje Sass por ejemplo. En lo personal me gusta combinar Gulp y Sass para mantener mi front-end, aunque Laravel ya tiene integrado el Laravel Mix , yo prefiero usar Gulp y Sass . En este Tutorial voy a poner los requisitos y primeros pasos que se necesitan para poder compilar nuestro archivo css de nuestro proyecto. La primera cosa que hay que hacer es recordar que Gulp al ser una tecnología de Javascript requiere de Node Js y su potente npm para gestionar paquetes. Entonces el primer requisito es instalar Node Js . desde la página principal, puedes hacerlo haciendo clic aquí . Navegamos hasta la carpeta de proyecto, para el ejemplo usaré la ubicación c:/virtualhosts cd c:/virtualhosts mkdir miproyecto cd miproyecto Una vez que hemos creado nuestra carpeta de proyecto e ingresado en ella,...

Hacer el menú de bootstrap multinivel en Wordpress

Hay que colocar el siguiente CSS en la hoja de estilos de nuestro tema. /* dropdown */ . dropdown - menu { margin : 0px auto ; } . dropdown - menu . dropdown - menu { left : 100 %; top : 0px ; } /* shows the dropdown on hover*/ . navbar ul . nav li : hover > ul . dropdown - menu { display : block ; } /* before and after */ . navbar . nav > li > . dropdown - menu :: before , . navbar . nav > li > . dropdown - menu :: after { display : none ; }

Colocar traducciones en formularios en Laravel

Para agregar traducción a una label , se agrega: {{trans('validation.attributes.email')}} Y hay que ir a resources/lang/en/validation.php y modificar la parte final llamada atributes: 'attributes' => [], En este array podemos meter los valores para las traducciones del idioma seleccionado. Por ejemplo la traducción de inglés para las etiquetas que salen en el formulario de login sería: 'attributes' => [ 'email' => 'E-Mail', 'password' => 'Password' ],

Proteger la creación de usuarios con rol de administrador en Laravel

Para evitar que al registrarse un usuario, este pueda ponerse un rol con un ataque mediante una herramienta de chrome developer tools o parecida, y agregarse el mismo el rol de administrador. Vamos a hacer que cada usuario registrado automáticamente se guarde en la base de datos con el rol de user. Para ello hay que modificar el método create del archivo AuthController.php y debe quedar como sigue:  protected function create(array $data) { $user = new User([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); $user->role = 'user'; $user->save(); }