Laravel · Más allá del curso

# Laravel en producción.

El curso termina con la app desplegada. Esto es lo que viene después: las consultas que se repiten, dónde poner la lógica cuando el proyecto crece, los dos errores que aparecen al subirlo a un sitio que no controlas, y las integraciones que acaban pidiéndote en todos los proyectos.

14 artículos·4 pistas

[Empezar por el curso](https://www.angelcruz.dev/laravel-fundamentals)

Eloquent

## Consultas que no se repiten

Las dos formas de dejar de escribir el mismo where en veinte sitios. Se leen juntas: una es opcional y explícita, la otra es automática y silenciosa.

- ### [Query scopes](https://www.angelcruz.dev/post/como-se-usan-los-query-scopes)
  [El scope local: encapsular una condición y llamarla por su nombre. El punto de partida, porque el global scope solo se entiende después de este.](https://www.angelcruz.dev/post/como-se-usan-los-query-scopes)

  [\[Eloquent\]\[Scopes\]](https://www.angelcruz.dev/post/como-se-usan-los-query-scopes)

  [2 min de lecturaLeer](https://www.angelcruz.dev/post/como-se-usan-los-query-scopes)
- ### [Cómo implementar Global Scopes en Laravel](https://www.angelcruz.dev/post/como-implementar-los-global-scopes-usando-laravel)
  [El scope que se aplica a todas las consultas del modelo sin que lo invoques. Las dos formas de registrarlo, cómo quitarlo cuando estorba (con la clase, no con un string) y cuándo no conviene.](https://www.angelcruz.dev/post/como-implementar-los-global-scopes-usando-laravel)

  [\[ScopedBy\]\[SoftDeletes\]](https://www.angelcruz.dev/post/como-implementar-los-global-scopes-usando-laravel)

  [5 min de lecturaLeer](https://www.angelcruz.dev/post/como-implementar-los-global-scopes-usando-laravel)

Estructura

## Dónde poner el código

Las decisiones que no se notan en un proyecto de tres rutas y se pagan en uno de trescientas: dónde vive la lógica y qué se reutiliza.

- ### [Como implementar Actions en Laravel](https://www.angelcruz.dev/post/como-implementar-actions-en-laravel)
  [Clases con una única responsabilidad para las tareas concretas de la aplicación, en vez de controladores que crecen hasta ser inmanejables.](https://www.angelcruz.dev/post/como-implementar-actions-en-laravel)

  [\[Actions\]\[Arquitectura\]](https://www.angelcruz.dev/post/como-implementar-actions-en-laravel)

  [2 min de lecturaLeer](https://www.angelcruz.dev/post/como-implementar-actions-en-laravel)
- ### [Diseño atómico con Blade](https://www.angelcruz.dev/post/componentes-reutilizables-laravel)
  [Atomic Design aplicado a Blade Components: átomos, moléculas y organismos en una estructura que se sostiene cuando la interfaz crece.](https://www.angelcruz.dev/post/componentes-reutilizables-laravel)

  [\[Blade\]\[Atomic Design\]](https://www.angelcruz.dev/post/componentes-reutilizables-laravel)

  [3 min de lecturaLeer](https://www.angelcruz.dev/post/componentes-reutilizables-laravel)
- ### [Mis paquetes favoritos de Laravel](https://www.angelcruz.dev/post/mis-paquetes-favoritos-de-laravel)
  [Los paquetes que instalo en casi cada proyecto, qué hace cada uno y cuándo me ha salvado. Con años de uso detrás, no una lista copiada.](https://www.angelcruz.dev/post/mis-paquetes-favoritos-de-laravel)

  [\[Paquetes\]\[Composer\]](https://www.angelcruz.dev/post/mis-paquetes-favoritos-de-laravel)

  [4 min de lecturaLeer](https://www.angelcruz.dev/post/mis-paquetes-favoritos-de-laravel)

Producción

## Del portátil al servidor

El entorno local, el despliegue y lo que pasa después. Incluye los dos errores que se encuentra casi todo el mundo la primera vez que sube una app de Laravel a un sitio que no controla.

- ### [Novedades de Laravel 13](https://www.angelcruz.dev/post/laravel-13-novedades)
  [Qué trae la versión que vas a desplegar: PHP 8.3 mínimo, el AI SDK de primera parte, JSON:API, búsqueda vectorial y passkeys.](https://www.angelcruz.dev/post/laravel-13-novedades)

  [\[Laravel 13\]\[PHP 8.3\]](https://www.angelcruz.dev/post/laravel-13-novedades)

  [9 min de lecturaLeer](https://www.angelcruz.dev/post/laravel-13-novedades)
- ### [Lerd: el Laravel Herd que sí corre en Linux](https://www.angelcruz.dev/post/lerd-laravel-herd-linux)
  [Herd no tiene build para Linux y no lo anuncia. Lerd cubre ese hueco con Podman rootless, dominios .test automáticos y un dashboard.](https://www.angelcruz.dev/post/lerd-laravel-herd-linux)

  [\[Linux\]\[Podman\]\[Entorno\]](https://www.angelcruz.dev/post/lerd-laravel-herd-linux)

  [10 min de lecturaLeer](https://www.angelcruz.dev/post/lerd-laravel-herd-linux)
- ### [Laravel en hosting compartido](https://www.angelcruz.dev/post/que-hacer-cuando-necesitas-subir-aun-app-de-laravel-a-un-hosting-compartido)
  [Sin acceso raíz, sin Composer en el servidor y con la carpeta public en el sitio equivocado. Los pasos para que funcione igualmente.](https://www.angelcruz.dev/post/que-hacer-cuando-necesitas-subir-aun-app-de-laravel-a-un-hosting-compartido)

  [\[Hosting\]\[Deploy\]](https://www.angelcruz.dev/post/que-hacer-cuando-necesitas-subir-aun-app-de-laravel-a-un-hosting-compartido)

  [3 min de lecturaLeer](https://www.angelcruz.dev/post/que-hacer-cuando-necesitas-subir-aun-app-de-laravel-a-un-hosting-compartido)
- ### [Limpiar la caché de Laravel](https://www.angelcruz.dev/post/laravel-error-de-permisos-al-intentar-borrar-el-cache)
  [Los comandos para cada caché y qué hacer cuando artisan falla con un error de permisos en storage, que es el tropiezo clásico después de un deploy.](https://www.angelcruz.dev/post/laravel-error-de-permisos-al-intentar-borrar-el-cache)

  [\[artisan\]\[Permisos\]\[storage\]](https://www.angelcruz.dev/post/laravel-error-de-permisos-al-intentar-borrar-el-cache)

  [2 min de lecturaLeer](https://www.angelcruz.dev/post/laravel-error-de-permisos-al-intentar-borrar-el-cache)
- ### [Laravel Nightwatch Cambia las Reglas: Monitoreo y Logs sin Dolor](https://www.angelcruz.dev/post/laravel-nightwatch-monitoreo)
  [Monitoreo y observabilidad pensados solo para Laravel: qué mide, qué cuesta y en qué se diferencia de enchufar un APM genérico.](https://www.angelcruz.dev/post/laravel-nightwatch-monitoreo)

  [\[Monitoreo\]\[Logs\]](https://www.angelcruz.dev/post/laravel-nightwatch-monitoreo)

  [4 min de lecturaLeer](https://www.angelcruz.dev/post/laravel-nightwatch-monitoreo)

Integraciones

## Lo que siempre acaban pidiendo

Cuatro cosas que no están en ningún curso y que aparecen en casi todos los proyectos reales, cada una resuelta con el paquete que de verdad usé.

- ### [Invisible reCAPTCHA](https://www.angelcruz.dev/post/integrando-invisible-recaptcha-de-google-de-forma-facil-en-laravel)
  [Protección de formularios sin el widget que estropea el diseño ni los captchas que el usuario tiene que resolver. En unos minutos.](https://www.angelcruz.dev/post/integrando-invisible-recaptcha-de-google-de-forma-facil-en-laravel)

  [\[reCAPTCHA\]\[Formularios\]](https://www.angelcruz.dev/post/integrando-invisible-recaptcha-de-google-de-forma-facil-en-laravel)

  [1 min de lecturaLeer](https://www.angelcruz.dev/post/integrando-invisible-recaptcha-de-google-de-forma-facil-en-laravel)
- ### [Crear OG images en Laravel con Browsershot](https://www.angelcruz.dev/post/crear-og-images-con-laravel-y-browsershot)
  [Generar las imágenes de Open Graph desde tu propia app con Browsershot, sin depender de un servicio externo que puede cerrar o cobrar.](https://www.angelcruz.dev/post/crear-og-images-con-laravel-y-browsershot)

  [\[Open Graph\]\[Browsershot\]](https://www.angelcruz.dev/post/crear-og-images-con-laravel-y-browsershot)

  [2 min de lecturaLeer](https://www.angelcruz.dev/post/crear-og-images-con-laravel-y-browsershot)
- ### [Laravel Charter: crea tu app Laravel con Sail sin memorizar comandos](https://www.angelcruz.dev/post/laravel-charter)
  [Un generador visual que arma el comando de creación con Sail: eliges servicios, starter kit y herramientas, y copias el resultado.](https://www.angelcruz.dev/post/laravel-charter)

  [\[Sail\]\[Scaffolding\]](https://www.angelcruz.dev/post/laravel-charter)

  [3 min de lecturaLeer](https://www.angelcruz.dev/post/laravel-charter)
- ### [Como usar Ping-O-Matic con Laravel](https://www.angelcruz.dev/post/como-usar-ping-o-matic-con-laravel)
  [Avisar a los motores de búsqueda cuando publicas, desde la propia aplicación. Pequeño, viejo y sigue funcionando.](https://www.angelcruz.dev/post/como-usar-ping-o-matic-con-laravel)

  [\[Ping-O-Matic\]\[Indexación\]](https://www.angelcruz.dev/post/como-usar-ping-o-matic-con-laravel)

  [1 min de lecturaLeer](https://www.angelcruz.dev/post/como-usar-ping-o-matic-con-laravel)

Alrededor

## Los dos niveles de al lado

Este hub es el intermedio: asume que ya sabes Laravel y no entra en el lenguaje de debajo. Los otros dos cubren esas dos direcciones.

### [Aprende Laravel desde cero](https://www.angelcruz.dev/laravel-fundamentals)

[El curso completo en trece capítulos que sí se leen en orden: rutas, Eloquent, Blade, Pest y deploy, terminando en un proyecto funcionando.](https://www.angelcruz.dev/laravel-fundamentals)

### [PHP](https://www.angelcruz.dev/guia-php)

[El lenguaje que hay debajo: la referencia de operadores, cómo hashear contraseñas y qué hace realmente el composer.lock.](https://www.angelcruz.dev/guia-php)

FAQ

## Preguntas frecuentes

### ¿En qué se diferencia esta guía del curso de Laravel?+−

El curso es una secuencia: trece capítulos que se leen en orden, de la instalación al deploy, y termina en un proyecto funcionando. Esta página es lo contrario, catorce artículos independientes a los que se llega por una duda concreta. Si estás empezando, el curso primero.

### ¿Cuál es la diferencia entre un query scope y un global scope?+−

El query scope lo invocas tú cuando lo necesitas; el global scope se aplica solo a todas las consultas del modelo. El global es cómodo y a la vez invisible, que es su principal riesgo: la consulta que lees en el código no es la que llega a la base de datos.

### ¿Se puede tener Laravel en un hosting compartido?+−

Sí, aunque no es donde quieres estar. El problema no es Laravel: es no tener acceso raíz, no poder correr Composer en el servidor y que la carpeta public no coincida con la raíz del dominio. Todo eso tiene solución y está en el artículo de hosting compartido.

### ¿Por qué artisan me da un error de permisos al limpiar la caché?+−

Casi siempre porque los archivos de storage y bootstrap/cache los creó un usuario distinto del que ejecuta artisan, típicamente después de un deploy hecho con otra cuenta. Es el tropiezo más común y se arregla en un comando.

### ¿Necesito Laravel Herd si uso Linux?+−

Herd no tiene build para Linux, así que la pregunta no aplica tal cual. La alternativa que cubre ese hueco es Lerd, con Podman rootless y dominios .test automáticos.

Trabajo profesional

## ¿Necesitas esto resuelto y no explicado?

Hago desarrollo con Laravel: aplicaciones a medida, APIs y arquitectura que se mantiene. Si prefieres que lo monte alguien que ya se ha comido estos errores, hablemos.

[Ver servicios de desarrollo Laravel](https://www.angelcruz.dev/servicios/desarrollo-laravel)

---

Canónico HTML: [https://www.angelcruz.dev/laravel-produccion](https://www.angelcruz.dev/laravel-produccion)
Índice del sitio: [/sitemap.md](https://www.angelcruz.dev/sitemap.md)
