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:

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:

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:

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.

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:

  1. Capa 1: Clase que se encarga directamente del pago con PayPal. No le interesa qué producto se está comprando.
  2. Capa 2: Gestión de pasarelas de pago (PayPal y Stripe).
  3. 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:

  1. PayPal, Primeros pasos

  2. PayPal, Resumen de la Implementación

    1. Veremos cómo quedó la configuración en base a la implementación anterior.

  3. Adaptar PayPal: Parámetros importantes del pago

    1. Vamos a identificar y crear propiedades para cada dato que nos interese registrar como el ir del pago, estado, traza, etc.

  4. Adaptar PayPal: Establecer Parámetros del pago

    1. Vamos a establecer los parámetros definidos anteriormente en base a la respuesta de PayPal.

  5. Controlador base de pago

    1. Vamos a crear el controlador de pago y convertir la clase de PayPal a un trait.

  6. Controlador base de pago: Método para procesar el pago

    1. Vamos a crear un método global para procesar los pagos de PayPal y Stripe.

  7. BookController: Estructura base

    1. Creamos la estructura base de la clase book para recibir el pago.

  8. BookController: Generar el Payment

    1. Vamos a crear un pago a un libro.

  9. Definir BasePayment cómo abstract

    1. Definimos la clase de pago como abstracta para que no puedas crear rutas.

  10. Componente de pago para PayPal

    1. Vamos a crear un componente de Laravel para incorporar el plugin de pago.

  11. Stripe, Resumen de la Implementación

    1. Veremos cómo quedó la configuración en base a la implementación anterior.

  12. Adaptar Stripe

    1. 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

In english