Índice de contenido
- Sobre el curso
- ¿Por qué aprender CodeIgniter 4 hoy?
- Un framework rápido, ligero y muy práctico
- Lo que me motivó a crear un curso completo
- Temario del curso y libro
- Resumen del curso
- Objetivo
- Para quien es este curso/libro
- Qué vas a aprender en este Curso y Libro de CodeIgniter 4
- 1. Introducción
- 2. Estructura del curso
- 3. Snippets VSC PHP
- 4. Sobre CodeIgniter 4
- 5. Realizar preguntas
- 1. Introducción
- 2. Software necesario e instalación de las herramientas: Windows
- 3. Crear una base de datos con DBngin
- 4. Instalar CodeIgniter 4 con composer
- 5. Software necesario e instalación de las herramientas: MacOS
- 6. Instalar CodeIgniter 4 con composer
- 7. Ejecutar CodeIgniter en el navegador
- 8. Demo: instalar CodeIgniter 4 manualmente
- 9. Línea de comandos
- 10. Organización de un proyecto
- 11. Habilitar el modo desarrollador
- 12. Configurar la base de datos
- 13. Introducción a las rutas: Parte 1
- 14. Introducción a las rutas: Parte 2
- 15. MVC
- 1. Introducción
- 2. Controlador y ruta
- 3. Controlador y vista: Primeros pasos
- 4. Controlador y vista: Pase de datos
- 5. Migraciones: Crear
- 6. Migraciones: Ejecutar
- 7. Migraciones: Reto, Categorías
- 8. Migraciones: Rollback
- 9. Modelo: Crear modelo de película
- 10. MVC y CRUD: Listado de películas
- 11. Listado de películas: Opciones CRUD en la vista
- 12. Demo: Navegación y enlaces en distintos entornos de C4
- 13. Show: Detalle
- 14. Create: Formulario
- 15. Create: Registrar en la base de datos
- 16. Update: Actualizar en la base de datos
- 17. Delete: Actualizar en la base de datos
- 18. Reutilizar vistas: Formulario de películas
- 19. Publicar en github
- 1. Introducción
- 2. Reto: Crear el CRUD para las categorías
- 3. Publicar en github
- 1. Introducción
- 2. Agrupar rutas
- 3. Redirecciones
- 4. Rutas con nombre
- 5. Limitar las rutas recurso o presenter
- 6. Demo: Navegación y enlaces en distintos entornos de C4
- 7. Demo: Rutas de tipo recurso y presenter
- 8. Organizar controladores en carpetas
- 9. Publicar en github
- 1. Introducción
- 2. Rutas comunes
- 3. Argumentos en las rutas
- 4. Comando para listado de rutas
- 5. Probar rutas: tipo POST
- 6. Probar rutas: tipo PUT
- 7. Rutas de tipo recurso y presenter
- 8. Rutas automáticas
- 9. Rutas de tipo recurso y presenter: Opciones, only, except
- 10. Controladores en carpetas
- 11. Más rutas
- 12. Las rutas usadas en el resto del curso
- 1. Introducción
- 2. Mensajes flash
- 3. Sesión
- 4. Publicar en github
- 1. Introducción
- 2. Definir Layout
- 3. Publicar en github
- 1. Introducción
- 2. Validaciones: Definir reglas
- 3. Validaciones: Establecerlas en formularios
- 4. Función de old()
- 5. Publicar en github
- 1. Introducción
- 2. Principales propiedades de los modelos
- 3. Operaciones comunes
- 4. Cambio de tipo devuelto: de array a objeto
- 5. Reto: Actualizar todas las consultas de array a objeto
- 6. Publicar en github
- 1. Introducción
- 2. Primeros pasos
- 3. Crear migración, controlador y modelo de usuario
- 4. Crear un usuario con contraseña en hash
- 5. Login
- 6. Registrar
- 7. Cerrar sesión
- 8. Filtro para usuario autenticado
- 9. Publicar en github
- 1. Introducción
- 2. Primeros pasos
- 3. CRUD películas
- 4. Probar CRUD con Postman
- 5. Errores individuales
- 6. Reto: CRUD con categorías
- 1. Introducción
- 2. ¿Qué es y cómo generar un seeder?
- 3. Generar seeders para el resto de las tablas
- 4. Seeder anidados
- 5. Publicar en github
- 1. Introducción
- 2. Relaciones uno a muchos: Migración
- 3. Relaciones uno a muchos: Aplicar cambios
- 4. Relaciones muchos a muchos: Primeros pasos
- 5. Relaciones muchos a muchos: Consultas
- 6. Relaciones anidadas: Migraciones y cambios
- 7. Relaciones anidadas: Asignar etiquetas a una película, vista base
- 8. Relaciones anidadas: Asignar etiquetas a una película, Evento JavaScript
- 9. Relaciones anidadas: Asignar etiquetas a una película
- 10. Relaciones anidadas: Bloquear botón sin etiqueta seleccionada
- 11. Relaciones anidadas: Listar etiquetas de una película
- 12. Relaciones anidadas: Eliminar etiquetas de una película
- 13. Reto, Relaciones anidadas: CRUD
- 14. Publicar en github
- 1. Introducción
- 2. Carga de archivos, parte 1
- 3. Carga de archivos, parte 2
- 4. Funciones importantes en la carga de los archivos
- 5. Acceder a la imagen mediante un controlador
- 6. CRUD imagenes
- 7. Eliminar imagen
- 8. Descargar imagen
- 9. Opcional: Eliminar imagen, variante
- 10. Publicar en github
- 1. Introducción
- 2. Librerías y funciones de ayuda
- 3. Implementar paginación
- 4. Obtener datos de archivos
- 5. Manejo de errores
- 6. Publicar en git
- 1. Introducción
- 2. Sobre Bootstrap 5
- 3. Container
- 4. Tabla
- 5. Carta
- 6. Navbar de navegación
- 7. Paginación
- 8. Botones
- 9. Mensajes de confirmación
- 10. Formularios
- 11. Login/registro
- 12. Errores Formulario
- 13. Publicar en github
- 1. Introducción
- 2. Listado paginado
- 3. Página de detalle
- 4. Filtros para el listado: HTML
- 5. Filtros para el listado: Filtrar, Buscar
- 6. Filtros para el listado: Filtrar, categoría y etiqueta
- 7. Filtros para el listado: Filtrar, agrupados de los Like
- 8. Filtros para el listado: Llenar formulario, categorías
- 9. Filtros para el listado: Llenar formulario, etiqueta por categoría
- 10. Segunda forma de filtrar, agrupado
- 11. Valores anteriores
- 12. Limpiar filtro
- 13. Página de detalle: Mostrar etiquetas e imágenes
- 14. Mostrar imagen, categoría y etiquetas en listado de películas
- 15. Películas por categoría
- 16. Películas por etiqueta
- 1. Introducción
- 2. Paginado
- 3. Paginado full con búsqueda y filtros
- 4. Películas por categoría
- 5. Películas por etiqueta
- 6. Detalle pelicula
- 7. Crear y actualizar película: Categoría
- 8. Crear y actualizar película: Etiqueta
- 9. CRUD etiquetas
- 10. Upload
- 11. Upload: Eliminar imágenes
- 12. Publicar en github
- 1. Instalar y configurar
- 2. Shield: Resumen
- 1. Introducción
- 2. Crear sistema de pantallas
- 3. Crear usuarios
- 4. Sistema de permisos a usuarios: Listado de usuarios
- 5. Sistema de permisos a usuarios: Detalle de usuario
- 6. Sistema de permisos a usuarios: Listado de permisos, pruebas
- 7. Sistema de permisos a usuarios: Listado de permisos y grupos
- 8. Clasificar permisos por grupos
- 9. Demo: Conocer asignación de grupos y permisos
- 10. Reto: Asignar/remover permisos con un click
- 11. Terminar implementación
- 12. Reto: Asignar/remover grupos con un click
- 13. Reto: Iterar matriz de grupos
- 14. Demo: Sincronizar
- 15. Proteger app: Definir permisos
- 16. Proteger app: Módulo de usuario
- 17. Proteger app: Redirecciones y limitaciones en la vista
- 18. Proteger app: Filtro para proteger módulo de usuarios
- 19. Proteger: controladores de ejemplo y redirecciones
- 1. Procesamiento de imágenes: fit
- 2. Procesamiento de imágenes: crop
- 3. Procesamiento de imágenes: quality
- 4. Procesamiento de imágenes: rotating
- 5. Procesamiento de imágenes: resizing
- 6. Procesamiento de imágenes: múltiples operaciones
- 7. Caché de las páginas
- 8. Caché de los datos
- 9. Introducción a las configuraciones personalizadas
- 10. Generar logs de sistema
- 11. Generar archivos de lenguaje
- 12. Detectar el idioma del cliente y traducir la app con los lenguajes soportados
- 13. Traducir un formulario
- 14. Objeto request
- 15. Transacciones
- 16. Metadata de la base de datos
- 1. Métodos put, patch y delete
- 2. Haciendo peticiones HTTP (CURL): get y delete
- 3. Haciendo peticiones HTTP (CURL): post y put
- 4. Detectando el agente (tipo de dispositivo y navegador)
- 5. Enviando emails
- 6. Encriptando textos
- 7. Trabajando con fechas
- 8. Trabajando con las URIs
- 9. Trabajando con archivos
- 1. Array Helper
- 2. File System
- 3. Number
- 4. Text helper
- 5. Url Helper
- 1. Introducción
- 2. Explorar inspiración para el proyecto
- 3. Crear controlador maestro
- 4. Crear controlador de ejemplo para el CRUD
- 5. Crear listado inicial: Generar Datos
- 6. Obtener las columnas de la tabla
- 7. Obtener la URL o URI desde el request
- 8. Crear listado inicial: Construir tabla
- 9. Crear listado inicial: Construir enlace del CRUD: Edición
- 10. Crear listado inicial: Construir cabecera
- 11. Cargar vistas para la cabecera y el footer
- 12. Definir un modelo para el CRUD mediante una función
- 13. Crear función para editar registros
- 14. Crear función para obtener el baseURL del proyecto + URI base
- 15. Crear vista para editar registros
- 16. Definir función para actualizar los registros
- 17. Definir tipos de campos según campos en la base de datos (controlador)
- 18. Crear esquema para definir tipos de campos para el formulario (vista)
- 19. Valor anterior en los formularios
- 20. Definir función y vista para la creación
- 21. Crear función para insertar un registro
- 22. Definir validaciones
- 23. Crear listados de selección para las relaciones foráneas en el controlador
- 24. Crear listados de selección para las relaciones foráneas en la vista
- 25. Crear listados de selección: Detalles finales
- 26. Crear listados de selección: selección por defecto en edición
- 27. Ocultar campo de id
- 28. Eliminar: Configurar modal al momento de dar clic en un enlace
- 29. Eliminar: Crear función en el controlador para eliminar
- 30. Eliminar: Definir formulario para eliminar registro
- 31. Activar la paginación en la tabla
- 32. Labels para el formulario y tabla/listado
- 33. Demo: Mostrar excepción con configuración incorrecta
- 1. Introducción
- 2. Crear Proyecto
- 3. Migración: Categoría y etiquetas
- 4. Migración: Producto
- 5. CRUD para las categorías
- 6. Extra: Mostrar errores del formulario
- 7. CRUD para las etiquetas
- 8. Agrupar rutas y cambiar el namespace
- 9. CRUD para los productos, enfoque inicial
- 10. CRUD para los productos, resto de los campos
- 11. CRUD para los productos, plugin WYSIWYG
- 12. CRUD para los productos, Terminar listado de productos
- 13. Generar un PDF: Instalar la herramienta y primeras pruebas
- 14. Aumentar las cantidades y devolver una respuesta json
- 15. CRUD para los productos, Generar migración para manejar el stock
- 16. CRUD para los productos, Generar modelo para el control de los productos
- 17. CRUD para los productos, Registrar log (ProductControl) en la función addStock
- 18. CRUD para los productos, Aumentar cantidades desde el listado
- 19. Extra: CRUD para los productos, Remover flechas input number
- 20. CRUD para los productos, Remover cantidades desde el listado
- 21. CRUD para los productos, Adaptar pase de id y a todos los productos
- 22. CRUD para los productos, Validar datos de entrada desde el controlador
- 23. CRUD para los productos, Verificar respuesta del servidor desde la vista
- 24. CRUD para los productos, replicar los pasos anteriores
- 25. CRUD para los productos, Convertir las funciones anteriores una petición POST
- 26. Generar migración y modelo para el cliente/usuario de la app
- 27. Actualizar Stock en el listado
- 28. Seeds, Generar usuarios de prueba
- 29. Registrar usuario en ProductsControl, generar migración
- 30. Reto: Modificar migración de tipos para los usuarios
- 31. Crear un componente con un listado de usuarios/customers
- 32. Aceptar el usuario desde el controlador
- 33. Reto: Realizar los pasos correspondientes para la salida de mercancia
- 34. Pasar tipo para indicar el recurso a consumir
- 35. Crear función json para mostrar los proveedores o clientes
- 36. Consumir la función anterior desde la vista para popular el select
- 37. Validar que el tipo de usuario sea válido
- 38. Crear una validación personalizada: Validar el usuario
- 39. Crear una validación personalizada: Pasar el tipo
- 40. Crear una validación personalizada: Verificar validaciones en el controlador
- 41. Verificar que existe stock al momento de realizar una venta
- 42. ¿Validar el producto desde el request?
- 43. Generar migración y modelo para ProductUserControl
- 44. Formulario para registrar compra (proveedores) y venta (clientes)
- 45. Mostrar errores por el diálogo
- 46. Reiniciar el diálogo
- 47. Mostrar el detalle (traza) del producto: entradas y salidas
- 48. Calcular el total
- 49. Filtros en la traza
- 50. Filtros en la traza: Recordar selección al recargar la página
- 51. Filtros en la traza: Usuario
- 52. Filtros en la traza: Cantidad, lado del cliente
- 53. Filtros en la traza: Cantidad, lado del servidor
- 54. Filtros en la traza: Cantidad, activar/desactivar y detalles finales
- 55. Filtros en la traza: Filtrar los usuarios por tipo
- 56. Filtros en la traza: Campo de búsqueda
- 57. Filtros en la traza: Campo de búsqueda, búsqueda por tokens
- 58. Filtros en la traza: Limpiar formulario
- 59. Demo: Generar PDF de la traza del producto
- 60. Categorías: Definir en el CRUD
- 61. Categorías: Filtro en el listado
- 62. Tags, relaciones muchos a muchos: Definir migración de productos y tags
- 63. Tags: Insertar tags en actualizar parte 1, actualizar y validaciones
- 64. Tags: Insertar tags en actualizar parte 2, selected en los options
- 65. Tags: Insertar tags en actualizar parte 2, valor anterior para los tags
- 66. Tags: Eliminar tags NO seleccionados
- 67. Tags: Filtro en el listado, groupBy y joins
- 68. Tags: Filtro en el listado, selected en los tags
- 69. Tags: Filtro en el listado, búsqueda individual de etiquetas (otra forma)
- 70. Tags: Filtro en el listado, checkbox en vez de select multiple
- 71. Publicar en git
- 1. Introducción
- 2. Sobre el proyecto
- 3. Instalar Bootstrap 5
- 4. Configurar el layout (container) y estructura HTML básica
- 5. Configurar botones
- 6. Configurar formularios
- 7. Configurar formularios
- 8. Configurar el header
- 9. Listado: Filtros
- 10. Traza: Características
- 11. Tablas
- 12. Paginación
- 13. Modal para formulario para registrar compra (proveedores) y venta (clientes)
- 14. Mostrar errores formulario
- 15. Publicar en git
- 1. Introducción
- 2. Crear aplicación en CodeIgniter y estructura base
- 3. Sitio de desarrolladores de PayPal
- 4. CURL Request
- 5. Botón de PayPal JS
- 6. Generar el token de acceso
- 7. Demo: Procesar la orden, CURL CodeIgniter
- 8. Procesar la orden, CURL PHP
- 9. Detalles finales
- 10. Publicar en git
- 1. Introducción
- 2. Primeros pasos
- 3. Crear proyecto en Vue mediante Node
- 4. Estructura del proyecto en Vue
- 5. Carpeta de los módulos de node
- 6. Un poco más sobre componentes en Vue
- 7. Axios/fetch Para realizar peticiones HTTP y consumir la Rest API
- 8. Nuestro primer fetch
- 9. CORS en CodeIgniter 4, la forma fácil
- 10. Pruebas con los fetch
- 11. Axios en reemplazo de los fetch
- 12. Nuestro primer axios
- 13. CORS en CodeIgniter 4, la forma fácil, definir URL de desarrollo
- 14. Componente de listado: Estructura base
- 15. Componente de listado: Ciclo de vida, Created
- 16. Componente de listado: v-for, Reactividad y async await
- 17. Demo: Reactividad de Vue y uso de funciones
- 18. Instalar y Configurar Oruga UI
- 19. Componente de Listado y Oruga UI
- 20. Componente de Listado y Oruga UI: Segunda forma
- 21. Opciones de la tabla
- 22. Paquete para los iconos
- 23. Vue Router
- 24. Vue Router: Configurar
- 25. Reto: SaveComponent.vue: Componente base y ruteo
- 26. SaveComponent.vue: Estructura base
- 27. SaveComponent.vue: Obtener categorías
- 28. SaveComponent.vue: v-model
- 29. SaveComponent.vue: Enviar petición al servidor
- 30. SaveComponent.vue: Manejo de errores
- 31. SaveComponent.vue: Editar: Obtener la película
- 32. SaveComponent.vue: Editar: Enviar data al servidor
- 33. Sobre las peticiones PUT en CodeIgniter 4
- 34. SaveComponent.vue: Eliminar
- 35. ListComponent.vue: Eliminar, recargar listado
- 36. ListComponent.vue: Diálogo de eliminar
- 37. Botones para editar y eliminar
- 38. Tailwind: Sobre
- 39. Tailwind: Instalar
- 40. Tailwind: Container
- 41. Tailwind: Márgenes
- 42. Tailwind: Textos
- 43. Tailwind: Diálogo de Eliminar
- 44. Tailwind: Mostrar operación a realizar en Formulario
- 45. Tailwind: Carta
- 46. Acomodar diseño en SaveComponent
- 47. Acomodar alineado SaveComponent: Parte 2
- 48. ListComponent.vue: Mostrar label del registro al eliminar
- 49. Tarea: CRUD categorías
- 50. Agrupar rutas
- 51. Navbar: Enlaces
- 52. Redireccionar en 404
- 53. Menú de hamburguesa
- 54. CORS CodeIgniter 4 la forma correcta
- 55. Publicar en github
- 1. Introducción
- 2. Apache: Exportar el proyecto vía FTP, archivos a emplear y primeros pasos
- 3. El archivo .env
- 4. Configurar CodeIgniter 4 en un dominio y remover el index.php
- 1. Requerimientos de CodeIgniter 4 y software a emplear
- 2. Instalar CodeIgniter 4 con composer
- 3. Demo: instalar CodeIgniter 4 manualmente
- 4. Ejecutar nuestro CodeIgniter desde el navegador
- 5. Demo: Generar URL limpia desde XAMPP o equivalente
- 6. Visual Studio Code como IDE para desarrollar en CodeIgniter
- 7. Requisitos para tomar el curso
- 8. Explicar estructura de un proyecto en CodeIgniter
- 9. Rutas, vistas y controlador base
- 10. Crear nuestro primer controlador y ruta asociada
- 11. Crear nuestra segunda ruta, método en el controlador y vista asociada
- 12. Crear nuestro segundo controlador y organizarlos en una carpeta aparte
- 13. Trabajar con múltiples vistas
- 14. Pase de datos entre controlador y vista
- 15. Rutas: pase de datos a funciones de los controladores
- 16. Rutas: Navegación entre páginas
- 17. Rutas: Rutas con nombre
- 18. Rutas: Bug en las rutas
- 19. Presentación de las migraciones para la planificación de nuestra base de datos
- 20. Crear la conexión a la base de datos
- 21. Presentación de la línea de comandos de CodeIgniter
- 22. Migraciones: Crear la tabla movies
- 23. Migraciones: Crear la tabla categories
- 24. Migraciones: Revertir cambios: rollback
- 25. Seeder: Generar datos de prueba en nuestra aplicación
- 26. Seeder: Truncar la tabla desde los seeder
- 27. Seeder: Generar muchos registros de prueba
- 28. Modelo: crear modelo para conectarnos a nuestra base de datos
- 29. Modelo: Crear modelo de categorías
- 30. El archivo .env en CodeIgniter 4
- 31. Actualizar CodeIgniter 4
- 32. ¿Qué hemos aprendido?
- 1. Introduccion
- 2. Crear la vista de listado de las películas
- 3. Más características del findAll()
- 4. Paginar registros
- 5. Rutas: Agrupar rutas
- 6. Rutas: Ruta de tipo recurso para nuestro controlador Movie
- 7. Crear nuestra función y estructura genérica para el controlador de películas
- 8. Definir el formulario para crear películas
- 9. Formularios: Recibir los datos
- 10. Formularios: Validar los datos
- 11. Formularios: Mostrar errores en la vista
- 12. Formularios: Guardar datos en la base de datos
- 13. Formularios: Campos permitidos para guardar o actualizar
- 14. Formularios: Redirección y mensajes por sesión
- 15. Eliminar registros
- 16. Actualizar: Crear funciones y vistas asociadas
- 17. Actualizar: valores por defecto y anterior en el formulario
- 18. Definir un formulario base para la creación y actualización
- 19. Crear partials para los mensajes de sesión y errores de formulario
- 20. Botón para crear
- 21. Cargar imágenes o archivos
- 22. Validaciones adicionales al momento de cargar la imagen
- 23. Crear tabla (migración) para guardar imágenes
- 24. Cargar imágenes y registrar en la base de datos
- 25. Redirección a actualizar en vista de creación
- 26. Personalizar formulario de creación/edición
- 27. Crear carpeta para guardar imágenes
- 28. Verificar id nulo
- 29. Modificar migración de movie para las categorías: rollback y refresh
- 30. Crear seeder para las categorías
- 31. Crear listado de categorías
- 32. Listado de categorías en actualizar película
- 33. Mostrar categoría en listado de películas
- 34. Validar datos de formulario mediante una clase aparte
- 35. Aprendido
- 1. Introduccion
- 2. Instalar la CDN de Bootstrap 4 o 5 y dependencias en CodeIgniter 4
- 3. Opcional: Emplear Bootstrap 5
- 4. Bootstrap: Configurar las tablas
- 5. Bootstrap: Configurar formulario
- 6. Bootstrap: Configurar el layout de la app
- 7. Bootstrap: Alert para los mensajes
- 8. Bootstrap: Links de paginación y creación de vista personalizada en CodeIgniter
- 9. Activar la clase de paginación
- 10. Bootstrap: header o cabecera de nuestra app
- 11. Personalizar los errores de formulario en CodeIgniter 4
- 12. CRUD imágenes movies: Listar
- 13. CRUD imágenes movies: Procesar y devolver desde el servidor
- 14. CRUD imágenes movies: get y validar errores al momento de proceso
- 15. CRUD imágenes movies: Definir la nueva ruta
- 16. CRUD imágenes movies: Columnas en Bootstrap
- 17. CRUD imágenes movies: Eliminar imágenes, botón personalizado
- 18. CRUD imágenes movies: Eliminar imágenes, dar funcionalidad al botón
- 19. Vista de detalle: Cartas en Bootstrap
- 20. Vista de detalle: Carrusel de imágenes
- 21. Instalar Font Awesome para nuestros íconos
- 22. Incorporar tooltip en el listado
- 23. Tarea: CRUD de categorías
- 24. Detalles: Centrar paginación, título, ancho extra descripción
- 25. ¿Qué hemos aprendido?
- 1. Introduccion
- 2. Crear ruta y controlador para el login
- 3. Crear vista para el login
- 4. Crear migración y modelo para el usuario
- 5. Mover controlador de Usuarios
- 6. CRUD de usuarios: proceso inicial
- 7. CRUD de usuarios: crear un hash de la contraseña con un helper
- 8. Verificar si el password es correcto
- 9. Procesar formulario de login
- 10. Presentación de la sesión
- 11. Cerrar sesión
- 12. Guardar datos de login en sesión
- 13. Terminar de procesar la petición para el login
- 14. Opción de cerrar sesión desde el header/nav
- 15. Introducción a los filtros: Proteger el módulo de dashboard
- 16. Parámetros obligatorios en los filtros
- 17. ¿Qué hemos aprendido?
- 1. Introduccion
- 2. Crear controlador base
- 3. Crear vistas base
- 4. Crear vista de listado de películas
- 5. Obtener una imagen por película y paginar los resultados
- 6. Mostrar la imagen en el listado
- 7. Crear la estructura para el detalle de la película
- 8. Limitar cantidad de texto en el listado de películas
- 9. Agregar columna para el precio a la película
- 10. Agregar un botón y ruta para comprar una película
- 11. Sobre la SDK de PayPal
- 12. Instalar la SDK de PayPal para hacer un cobro
- 13. Crear cuenta de desarrollo para PayPal
- 14. Adaptar la aplicación para hacer un pago genérico (generar link para el pago)
- 15. Configurar página para realizar el pago vía PayPal (buy)
- 16. Crear migración para registrar los pagos: Payment
- 17. Crear modelo Payment
- 18. Configurar el login obligatorio para comprar una película
- 19. Validar que el usuario esté autenticado al momento de comprar una película
- 20. Realizar la compra de una película mediante PayPal
- 21. Crear página de listado de las compras
- 22. Crear página de detalle de la compra
- 23. Redireccionar a la vista de detalle una vez realizada la compra (buy_success)
- 24. Agregar enlace para compras del usuario
- 25. Crear helper para formato de las fechas
- 26. Crear controlador para cargar sesión
- 27. Guardar el PaypalID y el tipo de pago
- 28. Crear buscador de películas: Formulario
- 29. Crear buscador de peliculas: Consulta
- 30. Crear buscador de peliculas: Filtrar por categorías
- 31. Crear buscador de películas: Colocar valores por defecto en la selección
- 32. Integrar Stripe en CodeIgniter 4
- 33. Crear una cuenta y la Api Key para la app en desarrollo
- 34. Crear la intentencion de pago (PaymentIntent) y generar la clave secreta
- 35. Conociendo los fetch para consumir la clave secreta para realizar un pago
- 36. Terminando de establecer el código para realizar un pago con Stripe
- 37. Resolviendo el problema con el Toolbar Debug de CodeIgniter 4
- 38. Demo: Realizando un pago y comprando el mismo
- 39. Procesar un pago vía Stripe bajo demanda: Separar vista de detalle y Stripe
- 40. Crear un modal en Bootstrap 4
- 41. Crear un modal para procesar el pago de Stripe: Petición fetch desde vista show
- 42. Mover JavaScript clave de Stripe a la función de detalle
- 43. Demo: petición vía jQuery Ajax.
- 44. Crear un archivo aparte para manejar el JavaScript de la tienda
- 45. Opcional: Colocar precios de la película
- 46. Realizando un pago para comprar una película
- 47. Refactorizar código JavaScript de Stripe
- 48. Definir estilo para el modal de Stripe
- 49. Validar datos de la compra y registrar en la base de datos
- 50. Crear fetch para enviar la petición con el identificador del pago
- 51. Devolver y consumir respuesta del procesamiento del pago
- 52. Colocar detalle del tipo de pago en las compras
- 53. Colocar detalle del tipo de pago en las compras
- 54. Archivo de configuración: Credenciales de PayPal y Stripe de manera global
- 55. Archivo de configuración: Emplear las configuraciones en controlador y vistas
- 56. Definir agrupado de rutas
- 57. Definir Foreign Key para los pagos
- 58. PayPal PHP: Explicación de lo que ya tenemos
- 59. PayPal PHP: Instalar el Rest Api SDK de PayPal en su versión 2
- 60. PayPal PHP: Generar una orden de prueba
- 61. PayPal PHP: Realizar una compra de prueba
- 62. PayPal PHP: Comprar una movie
- 63. PayPal PHP: Procesar respuesta de la compra
- 1. Introducción
- 2. Empezando con un controlador de tipo Rest
- 3. Instalar PostMan para realizar peticiones a la Rest Api
- 4. Crear un producto: Definir esquema básico
- 5. Crear un producto: Mostrar los errores de formulario
- 6. Crear un producto: Validar categoría válida
- 7. Normalizar respuesta de la RestApi
- 8. Mostrar un producto
- 9. Eliminar un producto
- 10. Editar un producto
- 11. Listado de categorías
- 12. Recurso rest paginado
- 13. Recurso rest con filtros y paginado
- 14. Respuesta personalizada para los métodos paginados
- 1. Actualizar versiones antiguas de CodeIgniter 4
- 2. Laravel Herd en CodeIgniter 4
- Algunas recomendaciones
Este es el curso MÁS completo que encontrarás de CodeIgniter 4, veremos de todo, desde aspectos básicos como las rutas, controladores, vistas, modelos, manejo de formularios, validaciones, entre otros hasta aspectos más completos como Rest Api con token de autenticación,
- Autorización mediante CodeIgniter Shield para los permisos.
- Paquetes imprescindibles y mucho más.
El detalle del curso lo puedes ver en la parte inferior de esta publicación y lo mejor, es que es una inversión para varios años ya que, de manera gratuita, mantendré el curso y libro por varios años a las actualizaciones
Sobre el curso
También tengo recursos gratuitos para el Curso en el Blog y el curso y libro comunitario/GRATIS en la web de Academia.
Es importante mencionar, que el curso también tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.
¿Por qué aprender CodeIgniter 4 hoy?
Un framework rápido, ligero y muy práctico
CodeIgniter 4 es uno de esos frameworks PHP que sorprende por su simpleza. Es rápido, consume pocos recursos y mantiene un enfoque clásico de MVC sin sacrificar modernidad. Para proyectos pequeños y medianos es una delicia, y para APIs o paneles administrativos funciona de maravilla.
A diferencia de otros frameworks más pesados, CodeIgniter 4 te permite producir resultados desde las primeras horas. Esa facilidad inicial fue una de las razones que me llevó a trabajar con él… y también a notar lo mucho que hacía falta documentación clara, especialmente en español.
Lo que me motivó a crear un curso completo
Cuando comencé a enseñar CodeIgniter 4, me di cuenta de que la documentación era muy limitada. Por eso decidí crear un curso que cubriera todo el ecosistema, desde rutas y controladores hasta API REST con autenticación por tokens.
Con el tiempo, lo he ido actualizando y lo seguiré actualizando durante años, totalmente gratis para quienes ya se inscribieron. Incluso convertí el curso completo en un libro equivalente, porque sé lo útil que es tenerlo también en formato escrito.
Temario del curso y libro
Este curso y libro tiene un total de 21 capítulos, se recomienda que leas en el orden en el cual están dispuestos y ha medida que vayamos explicando los componentes del framework, vayas directamente a la práctica, repliques, pruebes y modifiques los códigos que mostramos en este libro.
- Capítulo 1: Este capítulo está destinado a explicar el entorno necesario para desarrollar en CodeIgniter 4.
- Capítulo 2: Damos los primeros pasos con el frameworks, conoceremos la página oficial del framework, formas de instalación y ventajas de cada un de ellas, instalamos el framework, conoceremos los aspectos iniciales sobre cómo ejecutar el framework, configurar una base de datos, crear nuestros primeros componentes, el uso de las migraciones para la gestión de las tablas y veremos varios casos sobre cómo trabajar con las mismas, trabajaremos con el MVC y crear cada uno de estos componentes que lo definen desde cero, el ruteo y por supuesto, finalizando el capítulo con el tradicional CRUD para una de nuestras entidades.
- Capítulo 3: Es una práctica para ti, en la cual tienes que crear otro CRUD; poniendo en práctica todo lo visto en el primer capítulo.
- Capítulo 4: Conocerás cómo usar las rutas, rutas agrupadas, sus opciones y los distintos tipos.
- Capítulo 5: Conoceremos el uso de la sesión y también de la de tipo flash para guardar datos y el pase de datos.
- Capítulo 6: Aprenderás a manejar las vistas de manera reutilizable.
- Capítulo 7: Veremos cómo usar un esquema más modular al momento de definir los controladores para cada tipo de módulo.
- Capítulo 8: Conoceremos cómo trabajar con los formularios HTML y aplicar las validaciones desde el lado del servidor en CodeIgniter, conociendo los tipos de validaciones, creando las mismas y aplicando las validaciones desde el controlador; para luego, finalmente mostrar los errores por la vista; también conoceremos cómo usar funciones de ayuda particulares a los formularios.
- Capítulo 9: Conoceremos más a fondo los modelos, algunas propiedades que podemos definir en los mismos, el uso de las funciones y casos de ejemplos comunes.
- Capítulo 10: Aprenderemos a usar los filtros para interceptar las peticiones o request; como caso práctico, crearemos un módulo de autenticación con login para nuestra aplicación en la cual protegeremos el módulo de gestión o dashboard.
- Capítulo 11: En este capítulo construimos una Rest Api de tipo CRUD que puede ser consumida mediante JSON o XML; al ser operaciones tipo CRUD y trabajar principalmente desde el lado del servidor; será un proceso similar al del CRUD que creamos en el Capítulo 2 pero con algunas variantes que son propias de este tipo de estructura.
- Capítulo 12: En este capítulo aprenderás a generar datos de pruebas mediante los seeders los cuales son ideales para cuando estamos empezando a desarrollar.
- Capítulo 13: En este capítulo conoceremos cómo manejar el esquema relacional de la base de datos en CodeIgniter; veremos las relaciones de uno a muchos y muchos a muchos.
- Capítulo 14: En este capítulo vamos a trabajar con la carga de archivos en nuestra aplicación, para cargar imágenes a nuestro modelo de películas.
- Capítulo 15: Este capítulo ofrece una introducción al uso de las librerías y funciones de ayuda y cómo usarlas.
- Capítulo 16: Este capítulo adaptaremos componentes de Bootstrap 5 en la aplicación.
- Capítulo 17: Este capítulo crearemos un módulo de consulta al usuario final con página de listado y detalle.
- Capítulo 18: Este capítulo realizaremos algunos cambios en la Rest Api creada anteriormente para definir métodos adicionales como upload, paginación, entre otros.
- Capítulo 19: App con Vue, próximamente.
- Capítulo 20: Este capítulo conoceremos cómo integrar la plataforma de PayPal en CodeIgniter, para poder procesar pagos directamente desde la aplicación.
- Capítulo 21: Este capítulo conoceremos cómo integrar CodeIgniter shield para manejar la autenticación y autorización; también, crearemos un pequeño proyecto con el cual aprenderemos a manejar los grupos y permisos.
Resumen del curso
A nivel técnico aprenderás ha trabajar con las siguientes características en CodeIgniter de manera fluida:
- Instalar CodeIgniter 4 con composer y manual
- Levantar el servicio de CodeIgniter 4
- Explicar estructura de un proyecto en CodeIgniter
- Visual Studio Code como IDE para desarrollar en CodeIgniter
- Manejo de las rutas
- Controladores, vistas, modelos y rutas
- Trabajar con múltiples vistas (layout)
- Conexión a la base de datos
- Formularios para la gestión de datos y validación
- Sesión y sesión flash
- Carga de archivos y generación de PDF
- Mover imágenes y generación de carpetas o directorios dinámico
- Redirecciones y mensajes por sesión
- Spark: Presentación de la línea de comandos de CodeIgniter
- Seeder: Generar datos de prueba en nuestra aplicación
- CRUD con los modelos
- El archivo .env en CodeIgniter 4
- Conocer las librerías y funciones de ayuda principales en CodeIgniter
- Crear funciones de Ayuda o helpers personalizadas.
- Creación de RestApis tipo CRUD
- Actualizar nuestro proyecto de CodeIgniter 4
- Módulo de usuario con login registro
- Uso de los filtros para interceptar peticiones
- Pasar CodeIgniter 4 a producción en un ambiente Apache
Integrar con Bootstrap 5:
- Nav
- Cartas
- Alertas
- Modals
- Tablas
- Imágenes
- Carrusel
- Botones
- Grid y contaniner
- Font Awesome para los iconos
Objetivo
La finalidad de este curso es dar los primeros pasos con CodeIgniter en su versión 4; para esto, tomaremos en cuenta dos cosas:
- No pretendemos que la persona logre conocer al 100% CodeIgniter de cero a experto, ya que sería un objetivo demasiado grande para el alcance de lo aquí escrito, si no, conocer su ecosistema, qué nos ofrece y cómo funciona el mismo en base a varios ejemplos y/o aplicaciones pequeñas con alcances limitados.
- Se espera que el lector tenga conocimientos en JavaScript, HTML y CSS ya que son necesarios para poder desarrollar en cualquier framework PHP, o web del lado del servidor que quieras aprender; en mi sitio web desarrollolibre.net cuento con múltiples recursos que te pueden interesar para dar los primeros pasos con varias tecnologías de manera gratuita; al igual que en mi canal de YouTube, tienes mucho material gratuito, único y de calidad.
Para quien es este curso/libro
Este curso es para cualquiera que quiera construir sus primeras aplicaciones en CodeIgniter 4, este escrito ofrece una introducción paso a paso con el framework conociendo los aspectos más relevantes del mismo y es enfocado sobre todo a la práctica; se da por hecho de que el lector tiene conocimientos y ha desarrollado en PHP y tecnologías compañeras del lenguaje, como JavaScript, HTML y CSS, ya que, recuerda que para emplear cualquier framework, tienes que tener las bases que sustentan al mismo, es decir, su lenguaje de programación.
El libro está dirigido a aquellas personas que quieran aprender algo nuevo, conocer sobre un framework que tiene muy poca documentación (sobre todo en español), que quiera mejorar una habilidad en el desarrollo web, que quiera crecer como desarrollador y que quiera seguir escalando su camino con otros frameworks superiores a este; con que cumplas al menos alguna de las consideraciones anteriores, este libro es para ti.
- Requisitos técnicos previos
- Necesitas tener bases sólidas de:
- PHP
- HTML
- CSS
- JavaScript
- Lo remarco porque, en mi experiencia, quienes llegan sin estas bases suelen frustrarse rápido cuando tocan conceptos como controladores o vistas dinámicas.
- Perfil ideal del estudiante si quieres:
- Construir tus primeras apps reales
- Aprender un framework PHP moderno pero sencillo
- Acceder a documentación clara en español
- Crear APIs, módulos de usuario, administradores y CRUDs completos
- Construir el camino para frameworks más complejos
Qué vas a aprender en este Curso y Libro de CodeIgniter 4
- Instalación con Composer o manual
- Aprenderás a levantar tu ambiente de trabajo desde cero usando Composer o con instalación manual, según lo que prefieras. También te enseño a levantar el servidor integrado y a estructurar tu proyecto correctamente.
- Rutas, controladores, vistas y modelos (MVC real)
- Desde el inicio trabajamos con el core del framework:
- Rutas simples y avanzadas
- Controladores con métodos organizados
- Vistas reutilizables y layouts
- Modelos conectados a la base de datos
- Aquí es donde muchos cursos se quedan cortos, pero en mi experiencia cuando hice mi primera app completa entendí que dominar estos cuatro elementos te hace avanzar 10 veces más rápido.
- Formularios, validaciones y sesiones
- Manejo de formularios con reglas de validación seguras, mensajes personalizados y uso de session y session flash para notificaciones.
Este apartado lo trabajamos desde casos reales: crear, editar y eliminar registros.
- Manejo de formularios con reglas de validación seguras, mensajes personalizados y uso de session y session flash para notificaciones.
- Conexión a base de datos y CRUDs prácticos
- Configurar la conexión
- Entender el Query Builder
- Construir un CRUD desde cero
- Usar migraciones y seeders para automatizar datos de prueba
- En mi caso, los seeders se volvieron indispensables cuando escalé mis primeras apps y necesitaba poblar decenas de tablas en segundos.
- Archivos, PDFs, uploads e imagen dinámica
- Subida de archivos, manejo de imágenes, generación de PDFs y creación de directorios dinámicos. Una de las partes que más me gusta explicar porque te da poder inmediato para construir paneles administrativos completos.
- Rest API + autenticación con tokens
- Creamos una API REST CRUD completa y añadimos autenticación por tokens.
Más adelante incluyo en el curso una pequeña app en Vue para consumir esa API (está en proceso, pero los alumnos la reciben gratis una vez publicada).
- Creamos una API REST CRUD completa y añadimos autenticación por tokens.
- Módulo de usuarios con login y registro con shield
- Implementamos un sistema de usuarios usando sesiones, validaciones y buenas prácticas. Además, enseñaré autorización con CodeIgniter Shield, una herramienta que en mi experiencia fue un antes y un después para manejar roles y permisos con elegancia.
- Uso de filtros, helpers y librerías clave
- Los filtros son ideales para interceptar peticiones; los helpers, para reducir código repetitivo. Ambos los uso constantemente en mis proyectos reales y aquí te enseño cómo crear tus propios helpers personalizados.
- Pasar un proyecto CodeIgniter 4 a producción
- Te muestro cómo preparar tu proyecto para un ambiente Apache, configurar .env, limpiar rutas, optimizar el rendimiento y desplegar correctamente.
Repositorio del curso:
Github
Una demo de la app:
A continuación, te presento algunas opciones para comprar el curso:
Precio mínimo:
$8.0
Condiciones:
- Todo el curso de por vida y descarga individual
- Un único pago para todo el curso
- Actualizaciones más frecuentes que en Udemy
- Contacto por mensajes
El curso actualizado en Udemy:
Precio mínimo:
$9.9
Queda: 0d 19:44
Condiciones:
- Todo el curso de por vida
- Un único pago
- Actualizaciones frecuentes
- Contacto por mensajes
Este curso es parte de la Ruta de Especialista en CodeIgniter. Descubre el camino completo aquí.