Cómo hacer cambios en tu proyecto Laravel con Git

Cuando trabajamos en un proyecto real, nunca hacemos cambios directamente en el código principal. En su lugar, usamos ramas (branchs) de Git para trabajar de forma segura y ordenada. Si algo sale mal, el proyecto original queda intacto.

Paso 1: Crear una rama nueva

Antes de tocar cualquier archivo, creamos una rama nueva donde haremos nuestros cambios:

git checkout -b feature/mejoras

Este comando hace dos cosas a la vez: crea la rama feature/mejoras y te mueve a ella automáticamente. Es como abrir un cuaderno nuevo en lugar de escribir encima del original.

 

Paso 2: Hacer los cambios

Ahora ya puedes programar con tranquilidad, haz lo que debas

 

Paso 3: Preparar los cambios 

git add .

Guardar tus cambios con un mensaje descriptivo:

git commit -m "refactorización del script que se encarga de xyz"

Subirlo a GitHub, accesible para todo tu equipo o hacer una copia de seguridad:

git push origin feature/mejoras

Puedes repetir este paso 3 tantas veces como quieras.

 

Paso 4: Fusionar los cambios con la rama principal

Cuando estés satisfecho con tus cambios, es hora de unirlos a la rama principal (master). Primero vuelve a ella:

git checkout master

Y luego fusiona tu rama:

git merge feature/mejoras

Paso 5: Eliminar la rama de mejora

Finalmente borramos la rama de mejoras y limpiamos todo

git branch -d feature/mejoras

Extensiones Vscode para el 2026

Laravel (Extensión oficial)
La extensión oficial proporciona soporte completo para el framework: sintaxis highlighting mejorado, autocompletado de facades, helpers y Eloquent. Durante la instalación, asegúrate de configurar correctamente las rutas del proyecto y habilitar el indexado para obtener el máximo rendimiento.

Laravel Goto
Unifica la navegación en proyectos Laravel eliminando la necesidad de múltiples extensiones goto especializadas. Permite saltar directamente desde el código a controladores, vistas, modelos, rutas, configuraciones y archivos de traducción con un solo atajo. Esto simplifica significativamente el flujo de trabajo y reduce la saturación de extensiones.

Tailwind CSS IntelliSense
Fundamental para desarrollo con Tailwind: ofrece autocompletado inteligente de clases, resaltado de sintaxis, linting en tiempo real y previsualizaciones de colores. También detecta clases personalizadas definidas en tu configuración de Tailwind

Vue – Official
Soporte oficial para Vue 3 con funcionalidades como validación de templates, autocompletado de componentes, refactorización inteligente y navegación por el código. Esencial si trabajas con Inertia.js o Vue como frontend en tus proyectos Laravel.

GitHub Copilot
El asistente de IA que ha revolucionado la productividad: genera código contextual, sugiere implementaciones completas de funciones, autocompleta bloques complejos y ayuda con patrones específicos de Laravel. El ROI en tiempo ahorrado justifica ampliamente la inversión.

 

¿Me he dejado alguna?

Laravel ERD

Esta entrada explica como realizar un ERD en Laravel, es decir, realizar un diagrama Entidad-Relación según los modelos de Eloquent.

Para ello nos valemos de un paquete de GitHub, que es el único que hemos encontrado que realmente funciona a día de hoy (2024). Este paquete se lama «Laravel ER Diagram Generator» y lo podéis encontrar aquí.

Como explican en la página del proyecto, en Linux hay que instalar un requisito:

sudo apt-get install graphviz

Para luego instalar el paquete:

composer require beyondcode/laravel-er-diagram-generator --dev

Y en mi caso (Mint/Laravel 9) así de fácil ha sido la instalación. Solo falta usarlo:

php artisan generate:erd

Y en tres líneas ya tenemos el diagrama que de otra manera hubiéramos tardado bastante más en realizar.

Cache en Laravel (REDIS)

Vamos a instalar y usar la cache de Laravel, en este caso Redis

Para instalar Redis en nuestra aplicación debemos instalarla en nuestro sistema, instalar el módulo de php y lo necesario con composer para laravel:

sudo apt install redis
sudo apt install php-redis
composer require predis/predis

sudo systemctl restart apache2

Una vez instalado debemos modificar el fichero de configuración para que use redis de cache, teniendo en cuenta que nuestro driver de cache lo cambiaríamos por «redis», y añadiríamos nuestro cliente de redis a «predis». Así, las líneas más importantes relativas a la cache y redis en nuestro fichero .env serían:

CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_CLIENT=predis

Una vez lo tenemos instalado todo correctamente, para usarlo debemos hacer dos cosas: cachear y actualizar la cache.

CACHEAR

Para lo primero en nuestro controlador podemos cachear de maneras diferentes, que deberemos estudiar. Yo voy a usar en este ejemplo «tags» y a encapsularlo todo en una función

        $json = Cache::tags('calculos')->rememberForever('calculo1', function () use ($request) {
             $q = Modelo->where(...)->orderby(...);
             return $q->get()->toJson();
         });
         return $json;

Como vemos en el código cacheamos el JSON del resultado del SQL para siempre, así que no ejecutaremos otra vez la SQL hasta que no se borre la cache. Y con los tags estamos agrupando todas las cache para trabajar con ellas en grupo. Por ejemplo no tendremos que ir borrando cada cache con su nombre, las borraremos en grupo.

ACTUALIZAR CACHE

Para actualizar la cache usaremos «Observers», así tendremos actualizada siempre nuestra cache. Para crear un observer haremos:

php artisan make:observer CalculosObserver --model=Modelo

Y lo editamos para que use nuestro modelo y se borre al crear, borrar o actualizar nuestro modelo

namespace App\Observers;
use App\Models\Modelo;
class CalculosObserver
{
    public function created(Modelo $modelo)
    {
        //
        Cache::tags('calculos')->flush();
    }

    public function updated(Modelo $modelo)
    {
        //
        Cache::tags('calculos')->flush();
    }

    public function deleted(Modelo $modelo)
    {
        //
        Cache::tags('calculos')->flush();
    }
...

Y haremos que se ejecute editando app/Providers/AppServiceProvider.php

use App\Models\Modelo;
use App\Observers\CalculosObserver;

    public function boot()
    {
        //
        Modelo::observe(CalculosObserver::class);
    }

De esta manera tenemos un ejemplo de como cachear una SQL pesada/costosa y actualizada cada vez que añadamos un nuevo registro, lo modifiquemos o lo borremos.