Actualización semana 19May-02Jun - SEO Carga Diferida Laravel - FastAPI Testing - Sistema Gemas
Bienvenidos a otra semana. Paso a comentarles las actualizaciones que ocurrieron entre la semana del 26 de mayo al 2 de junio, comenzando —como siempre— con las novedades para el canal de YouTube y también para el blog.
YouTube/Blog
Aquí les comparto un video interesante que sigue la misma sintonía del curso original de CodeIgniter 4, enfocado en consumir la aplicación mediante la REST API con una interfaz hecha en Vue.
Ya estoy en los detalles finales y creo que prácticamente los publiqué todos. Algunos de los puntos que trabajé fueron:
- Ajustes de CSS (tamaños de texto, centrado).
- Mejora de la interfaz gráfica.
- Componente de carta utilizando UI, Vue y Tailwind.
- Diálogo de confirmación y ajustes visuales.
Los videos son:
- Tailwind CSS: Textos, tamaños, centrados y más - Vue + Rest Api CodeIgniter - 41 - https://youtu.be/n-azgfq02KM
- Tailwind + Vue + Oruga UI: Componente de Carta - 44 - https://youtu.be/2FDxIZE1uPI
- Tailwind: Diálogo de Eliminar, Espaciado y Flex #-Vue3 - 42 - https://youtu.be/VeZbNK74bJU
Todo esto forma parte del curso original, así que eran detalles de finalización.
SEO en Laravel: Carga diferida y renderizado de contenido
También terminé de publicar el último video de una lista de reproducción enfocada en SEO en Laravel. En mi opinión, la parte más interesante es la que llamo “Carga diferida y render del contenido”.
Ahí te muestro cómo, si no tienes el contenido final definido en la carga inicial, puedes generarlo automáticamente en ese momento. Esto me permitió:
- Evitar cargar el plugin Highlight.js después.
- Renderizar contenido automáticamente.
TRUCAZO para el SEO en Laravel, Carga Diferida y Pre Render del contenido 4 - https://youtu.be/N2vvVsyBk2A
Además, explico cómo generé un EPUB profesional, especialmente útil en casos como la generación de PDFs de libros, usando el plugin DOMPDF, que es compatible con Laravel, CodeIgniter, PHP puro o cualquier otro stack, ya que no es exclusivo de Laravel:
- Generar un EPUB PROFESIONAL en Laravel o cualquier aplicación en PHP (CodeIgniter) - https://youtu.be/3RVCcEBFKY8
- Mi Kit de Desarrollo para Laravel 2025 - Windows y MacOS - https://youtu.be/T_kacBkExPw
Estoy probando otros formatos para los cursos. En este caso, grabé varias clases en una sola para la sección de testing del curso de FastAPI con Pytest, buscando hacerlo más conciso:
- MASTER CLASE - Pruebas/Testing en FastAPI con Pytest - https://youtu.be/2Ky5lfIzGxw
Sistema de Puntos en la Plataforma de Academia
Otra cosa que me pareció interesante es que sigo trabajando constantemente en mi plataforma de academia, que también tiene aplicación web.
Implementé un sistema de puntos o gemas, inspirado en Duolingo, donde para ver una clase necesitas consumir un punto. Estos puntos se obtienen viendo una publicidad tipo anuncio bloqueante en la aplicación móvil.
Los puntos que desbloqueas en la app móvil también los puedes usar desde la web o desde la misma app. En principio, todos los cursos están disponibles mediante este sistema. Algunos libros también estarán liberados, aunque no todos.
- Academia Ver Cursos/Libros de Manera Gratuita con sistema de Publicidad (ADS) - https://www.youtube.com/playlist?list=PLB5SYDBi8M3E4HwxabjPaMGdrAd2-WxWE
- ¿Por qué usar el sistema de Puntos/Gemas en vez de Youtube? - https://youtu.be/kGeKV93PLmw
Curso Tienda en Línea con Laravel + Livewire
En cuanto al nuevo curso de tienda en línea usando Laravel y Livewire, se trabajó en la integración con PayPal. Subí la implementación completa de la parte base, por si tienes dudas.
Esto fue una continuación del curso de Laravel original, pero ahora con un enfoque más avanzado y modular:
En el curso original, se mostraba solo cómo hacer un pago básico, sin asociarlo a ningún modelo.
Ahora buscamos una solución modular, escalable y mantenible.
Implementamos un sistema de tres capas:
- Capa 1: Clase que se encarga directamente del pago con PayPal. No le interesa qué producto se está comprando.
- Capa 2: Gestión de pasarelas de pago (PayPal y Stripe).
- Capa 3: Lógica de negocios según el tipo de producto (libros, cursos, etc.).
Así, si en el futuro necesitas vender un nuevo tipo de producto o cambia la API de PayPal, no tendrás que reescribir la lógica varias veces. Solo adaptas la capa correspondiente.
Hicimos lo mismo con Stripe. Como te mencioné en el curso base, esta sección también parte de un resumen y luego adaptamos la integración a nuestro sistema modular de tres capas:
PayPal, Primeros pasos
PayPal, Resumen de la Implementación
Veremos cómo quedó la configuración en base a la implementación anterior.
Adaptar PayPal: Parámetros importantes del pago
Vamos a identificar y crear propiedades para cada dato que nos interese registrar como el ir del pago, estado, traza, etc.
Adaptar PayPal: Establecer Parámetros del pago
Vamos a establecer los parámetros definidos anteriormente en base a la respuesta de PayPal.
Controlador base de pago
Vamos a crear el controlador de pago y convertir la clase de PayPal a un trait.
Controlador base de pago: Método para procesar el pago
Vamos a crear un método global para procesar los pagos de PayPal y Stripe.
BookController: Estructura base
Creamos la estructura base de la clase book para recibir el pago.
BookController: Generar el Payment
Vamos a crear un pago a un libro.
Definir BasePayment cómo abstract
Definimos la clase de pago como abstracta para que no puedas crear rutas.
Componente de pago para PayPal
Vamos a crear un componente de Laravel para incorporar el plugin de pago.
Stripe, Resumen de la Implementación
Veremos cómo quedó la configuración en base a la implementación anterior.
Adaptar Stripe
Hablamos del código necesario para seguir la implementación.
Acepto recibir anuncios de interes sobre este Blog.
YouTube/Blog Detalles visuales app Api + RestAPI C4 - SEO y Laravel, carga diferida - Mi kit para desarrollar en Laravel - Epub en Laravel - Fast Api - Generar Epub - Sistema de gemas Curso/Libro Tienda Online Laravel Livewire - Sistema de 3 capas para realizar pagos con PayPal y Stripe
- Andrés Cruz