Curso y Libro CodeIgniter 4 desde cero + integración con Bootstrap 4 o 5 - 2025

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 (y una app para consumir la misma desde Vue -proximamente-), autorización mediante CodeIgniter Shield para los permisos, paquetes imprecindibles 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 por varios años a las nuevas versiones y dando mayor soporte por Academia.

Tambien tengo recursos gratuitos para el Curso en el Blog

Es importante mencionar, que el curso tambien tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.

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:

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

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.

 

 

Resumen del curso

A nivel técnico aprenderás ha trabajar con las siguientes características en CodeIgniter de manera fluida:

  1. Instalar CodeIgniter 4 con composer y manual
  2. Levantar el servicio de CodeIgniter 4
  3. Explicar estructura de un proyecto en CodeIgniter
  4. Visual Studio Code como IDE para desarrollar en CodeIgniter
  5. Manejo de las rutas
  6. Controladores, vistas, modelos y rutas
  7. Trabajar con múltiples vistas (layout)
  8. Conexión a la base de datos
  9. Formularios para la gestión de datos y validación
  10. Sesión y sesión flash
  11. Carga de archivos y generación de PDF
  12. Mover imágenes y generación de carpetas o directorios dinámico
  13. Redirecciones y mensajes por sesión
  14. Spark: Presentación de la línea de comandos de CodeIgniter
  15. Seeder: Generar datos de prueba en nuestra aplicación
  16. CRUD con los modelos
  17. El archivo .env en CodeIgniter 4
  18. Conocer las librerías y funciones de ayuda principales en CodeIgniter
  19. Crear funciones de Ayuda o helpers personalizadas.
  20. Creación de RestApis tipo CRUD
  21. Actualizar nuestro proyecto de CodeIgniter 4
  22. Módulo de usuario con login registro
  23. Uso de los filtros para interceptar peticiones
  24. Pasar CodeIgniter 4 a producción en un ambiente Apache

Integrar con Bootstrap 5:

  1. Nav
  2. Cartas
  3. Alertas
  4. Modals
  5. Tablas
  6. Imágenes
  7. Carrusel
  8. Botones
  9. Grid y contaniner
  10. Font Awesome para los íconos

Por aquí tienes el listado completo de clases que vamos a cubrir en el libro y curso:

Introducción al curso

  • 1 Introducción

  • 2 Estructura del curso

    Este es un curso bastante grande con muchos módulos de lo cual vamos de lo más básico a aspectos más avanzados, por lo tanto, el flujo u orden del curso es secuencial; te aconsejo que sigas el curso tal cual esta,...

  • 3 Snippets VSC PHP

    Snippets para VSC "php": { "prefix": "php", "body": [ "<?php $1 ?>" ], "description": "php tag" }, "php7": { "prefix": "php7", "body": [ "<?= $1 ?>" ], "description": "php7 tag" }

  • 4 Sobre CodeIgniter 4

    Vamos a hablar un poco sobre las características de CodeIgniter 4 en comparación con otros framework PHP de mayor nivel como Laravel.

  • 5 Realizar preguntas

Primeros pasos

  • 1 Introducción

  • 2 Software necesario e instalación de las herramientas: Windows

    Veremos el ambiente recomendado para trabajar con CodeIgniter en Windows.

  • 3 Instalar CodeIgniter 4 con composer

    Vamos a instalar CodeIgniter 4 mediante composer.

  • 4 Software necesario e instalación de las herramientas: MacOS

  • 5 Instalar CodeIgniter 4 con composer

    Vamos a instalar CodeIgniter 4 mediante composer.

  • 6 Ejecutar CodeIgniter en el navegador

    Vamos a ejecutar CodeIgniter desde el navegador y de esta manera ver el producto de nuestro trabajo hasta este punto.

  • 7 Demo: instalar CodeIgniter 4 manualmente

    Vamos a instalar CodeIgniter 4 de manera manual.

  • 8 Línea de comandos

    Vamos a explicar de manera general la línea de comandos.

  • 9 Organización de un proyecto

    Vamos a explicar de manera general el propósito de cada carpeta y archivo principal del proyecto.

  • 10 Habilitar el modo desarrollador

    Habilitar el modo desarrollador

  • 11 Configurar la base de datos

    Vamos a configurar la base de datos en MySQL.

  • 12 Introducción a las rutas: Parte 1

    Veremos cómo trabajar con las rutas.

  • 13 Introducción a las rutas: Parte 2

    Veremos cómo trabajar con las rutas.

  • 14 MVC

    Conoceremos como está formado el MVC de CodeIgniter.

Crear el primer CRUD: Películas

  • 1 Introducción

  • 2 Controlador y ruta

    Vamos a crear un controlador y su ruta asociada.

  • 3 Controlador y vista: Primeros pasos

    Vamos a crear un controlador y la vista asociada.

  • 4 Controlador y vista: Pase de datos

    Vamos a aprender a realizar el paso de datos entre controlador y vista.

  • 5 Migraciones: Crear

    Vamos a crear la primera migración para crear la tabla en la base de datos.

  • 6 Migraciones: Ejecutar

    Vamos a ejecutar la migración para replicar la clase de PHP (migración) a la base de datos como una tabla.

  • 7 Migraciones: Reto, Categorías

    Vas a crear la migración para las categorías.

  • 8 Migraciones: Rollback

    Vamos a aprender a revertir las migraciones.

  • 9 Modelo: Crear modelo de película

    Vamos a crear el modelo para las películas.

  • 10 MVC y CRUD: Listado de películas

    Vamos a crear un listado de películas empleando todas las capas del MVC y crear una de las capas del MVC.

  • 11 Listado de películas: Opciones CRUD en la vista

    Vamos a crear las opciones CRUD desde el listado.

  • 12 Demo: Navegación y enlaces en distintos entornos de C4

    Vamos a probar cómo se accede a las rutas si accedemos desde localhost, url con el virtual host o servidor de spark.

  • 13 Show: Detalle

    Vamos a crear el proceso para el detalle de una película.

  • 14 Create: Formulario

    Vamos a crear el proceso para crear una película.

  • 15 Create: Registrar en la base de datos

    Vamos a guardar los datos en la base de datos.

  • 16 Update: Actualizar en la base de datos

    Vamos a realizar el proceso de realizar de editar.

  • 17 Delete: Actualizar en la base de datos

    Vamos a realizar el proceso de eliminación.

  • 18 Reutilizar vistas: Formulario de películas

    Vamos a combinar dos vistas en una.

  • 19 Publicar en github

Reto: CRUD Categorías

  • 1 Introducción

  • 2 Reto: Crear el CRUD para las categorías

    Vas a crear el CRUD para las categorías.

  • 3 Publicar en github

Rutas y redirecciones

  • 1 Introducción

  • 2 Agrupar rutas

    Vamos a aprender a agrupar rutas.Vamos a aprender a agrupar rutas.

  • 3 Redirecciones

    Vamos a aprender a realizar redirecciones.

  • 4 Rutas con nombre

    Vamos a aprender a trabajar con rutas con nombre.

  • 5 Limitar las rutas recurso o presenter

    Vamos a aprender a limitar funciones de las rutas de tipo presenter o recurso.

  • 6 Demo: Navegación y enlaces en distintos entornos de C4

    Vamos a probar cómo se accede a las rutas si accedemos desde localhost, url con el virtual host o servidor de spark.

  • 7 Demo: Rutas de tipo recurso y presenter

    Vamos a realizar una demostración de las rutas de tipo recurso vs las de tipo presenter.

  • 8 Organizar controladores en carpetas

    Vamos a organizar los controladores en carpetas.

  • 9 Publicar en github

Introducción a las rutas

  • 1 Introducción

  • 2 Rutas comunes

    Exploramos las rutas más comunes y su funcionamiento.

  • 3 Argumentos en las rutas

    Conoceremos cómo usar argumentos en las rutas y sus tipos.

  • 4 Comando para listado de rutas

    Conoceremos el comando para mostrar las rutas.

  • 5 Probar rutas: tipo POST

    Vamos a probar una ruta de tipo POST, para crear recursos.

  • 6 Probar rutas: tipo PUT

    Vamos a probar una ruta de tipo PUT, para crear recursos.

  • 7 Rutas de tipo recurso y presenter

    Vamos a conocer como generar rutas de tipo CRUD y para qué sirven cada tipo de ruta.

  • 8 Rutas automáticas

    Vamos a generar rutas de manera automática.

  • 9 Rutas de tipo recurso y presenter: Opciones, only, except

    Vamos a conocer un par de opciones para eliminar las rutas generadas para las rutas de tipo CRUD.

  • 10 Controladores en carpetas

    Veremos cómo podemos colocar nuestros controladores en carpetas y definir sus rutas.

  • 11 Más rutas

    Hablaremos sobre otras opciones de las rutas.

  • 12 Las rutas usadas en el resto del curso

Sesión y mensaje flash

  • 1 Introducción

  • 2 Mensajes flash

    Vamos a aprender a crear y leer mensajes de sesión que solamente dura una petición/request.

  • 3 Sesión

    Vamos a aprender a crear y leer mensajes en la sesión.

  • 4 Publicar en github

Vistas y layouts

  • 1 Introducción

  • 2 Definir Layout

    Vamos a crear un layout para el módulo de dashboard.

  • 3 Publicar en github

Formularios y validaciones

  • 1 Introducción

  • 2 Validaciones: Definir reglas

    Vamos a aprender a realizar validaciones sobre formularios.

  • 3 Validaciones: Establecerlas en formularios

    Vamos a aprender a realizar validaciones sobre formularios.

  • 4 Función de old()

    Vamos a conocer una función para obtener el valor anterior de un campo de formulario.

  • 5 Publicar en github

Modelos

  • 1 Introducción

  • 2 Principales propiedades de los modelos

    Vamos a conocer algunas propiedades claves en el uso de los modelos.

  • 3 Operaciones comunes

    Vamos a conocer de manera teórica algunas funciones importantes en el uso de los modelos.

  • 4 Cambio de tipo devuelto: de array a objeto

    Vamos a conocer cómo devolver objetos en vez de array en las consultas.

  • 5 Reto: Actualizar todas las consultas de array a objeto

    Vas a actualizar todas las consultas de array a objeto.

  • 6 Publicar en github

Filtros

  • 1 Introducción

  • 2 Primeros pasos

    Vamos a conocer el uso de los filtros como intermediarios de los controladores.

  • 3 Crear migración, controlador y modelo de usuario

    Vamos a crear el esquema para crear un módulo de autenticación personalizado en la aplicación.

  • 4 Crear un usuario con contraseña en hash

    Vamos a crear el proceso para manejar la contraseña.

  • 5 Login

    Vamos a crear un sistema de login.

  • 6 Registrar

    Vamos a crear la página para registrar usuarios.

  • 7 Cerrar sesión

    Vamos a implementar la función de cerrar la sesión.

  • 8 Filtro para usuario autenticado

    Vamos a crear el filtro para proteger nuestro módulo de gestión.

  • 9 Publicar en github

Rest Api CRUD

  • 1 Introducción

  • 2 Primeros pasos

    Vamos a presentar como crear rest apis en CodeIgniter.

  • 3 CRUD películas

    Vamos a crear una rest api tipo CRUD para las películas.

  • 4 Probar CRUD con Postman

    Vamos a probar la Rest Api anterior.

  • 5 Errores individuales

    Vamos a aprender a procesar los errores de manera individual.

  • 6 Reto: CRUD con categorías

    Vamos a crear una rest api tipo CRUD para las categorías.

Seeders

  • 1 Introducción

  • 2 ¿Qué es y cómo generar un seeder?

    Conoceremos para que se pueden utilizar los seeders y como generar uno.

  • 3 Generar seeders para el resto de las tablas

    Vamos a generar los datos de prueba para el resto de las migraciones.

  • 4 Seeder anidados

    Veremos cómo llamar múltiples seeders con un solo comando.

  • 5 Publicar en github

Relaciones

  • 1 Introducción

  • 2 Relaciones uno a muchos: Migración

    Crearemos la relación de categoria_id.

  • 3 Relaciones uno a muchos: Aplicar cambios

    Veremos las relaciones de uno a muchos.

  • 4 Relaciones muchos a muchos: Primeros pasos

    Veremos las relaciones de muchos a muchos.

  • 5 Relaciones muchos a muchos: Consultas

    Una vez creada las estructuras de la relación, realizaremos las consultas.

  • 6 Relaciones anidadas: Migraciones y cambios

    Conoceremos cómo trabajar con relaciones anidadas.

  • 7 Relaciones anidadas: Asignar etiquetas a una película, vista base

    Vamos a crear la vista base para asignar las etiquetas a una película.

  • 8 Relaciones anidadas: Asignar etiquetas a una película, Evento JavaScript

    Vamos a enviar una petición al navegador cada vez que el usuario cambie la categoría por JavaScript.

  • 9 Relaciones anidadas: Asignar etiquetas a una película

    Vamos a terminar el proceso para asignar las etiquetas a una película.

  • 10 Relaciones anidadas: Bloquear botón sin etiqueta seleccionada

    Vamos a bloquear el botón de submit si no existe una categoría seleccionada.

  • 11 Relaciones anidadas: Listar etiquetas de una película

    Vamos a mostrar el listado de etiquetas en la vista de show de la película.

  • 12 Relaciones anidadas: Eliminar etiquetas de una película

    Vamos a crear el proceso para eliminar etiquetas asignadas.

  • 13 Reto, Relaciones anidadas: CRUD

    Vamos a crear un sencillo módulo de gestión.

  • 14 Publicar en github

Carga de archivos

  • 1 Introducción

  • 2 Carga de archivos, parte 1

    Vamos a crear la estructura para cargar archivos.

  • 3 Carga de archivos, parte 2

    Vamos a crear el resto de las relaciones para el proceso de upload.

  • 4 Funciones importantes en la carga de los archivos

    Vamos a conocer funciones claves en la carta de los archivos.

  • 5 Acceder a la imagen mediante un controlador

    Vamos a conocer otro mecanismo con el cual, podemos referenciar una imagen cargada en la carpeta writable.

  • 6 CRUD imagenes

    CRUD imagenes

  • 7 Eliminar imagen

    Vamos a eliminar una imagen.

  • 8 Descargar imagen

    Vamos a descargar una imagen.

  • 9 Opcional: Eliminar imagen, variante

    Vamos a verificar si no existen más películas asignadas a la misma imagen en la tabla pivote antes de eliminar la imagen y el registro de la imagen.

  • 10 Publicar en github

Librerías y funciones en CodeIgniter

  • 1 Introducción

  • 2 Librerías y funciones de ayuda

    Vamos a conocer de manera básica las librerías y funciones de ayuda que incorpora C4.

  • 3 Implementar paginación

    Vamos a implementar la paginación para nuestros listados.

  • 4 Obtener datos de archivos

    Vamos a crear emplear una función de ayuda para obtener datos de un archivo.

  • 5 Manejo de errores

    Vamos a conocer como usar las excepciones.

  • 6 Publicar en git

Bootstrap 5

  • 1 Introducción

  • 2 Sobre Bootstrap 5

    Vamos a hablar de B5 y otras soluciones.

  • 3 Container

    Vamos a definir un container para la aplicación.

  • 4 Tabla

    Vamos a usar el CSS de la tabla.

  • 5 Carta

    Vamos a adaptar el componente de carta como contenedor.

  • 6 Navbar de navegación

    Vamos a implementar el menú de navegación en su header.

  • 7 Paginación

    Vamos a adaptar el componente de paginación.

  • 8 Botones

    Vamos a adaptar el componente de los botones.

  • 9 Mensajes de confirmación

    Vamos a establecer los mensajes de confirmación mediante el componente de alert.

  • 10 Formularios

    Adaptamos el estilo para los formularios.

  • 11 Login/registro

    Vamos a crear el CSS para el login.

  • 12 Errores Formulario

    Definiremos el estilo para los errores de formulario.

  • 13 Publicar en github

Módulo web

  • 1 Introducción

  • 2 Listado paginado

    Vamos a crear un listado paginado.

  • 3 Página de detalle

    La página de detalle de la película.

  • 4 Filtros para el listado: HTML

    Filtros para la página de listado

  • 5 Filtros para el listado: Filtrar, Buscar

    Vamos a filtrar los datos empleando los LIKE buscar por el término de búsqueda.

  • 6 Filtros para el listado: Filtrar, categoría y etiqueta

    Vamos a filtrar por categorías y etiquetas.

  • 7 Filtros para el listado: Filtrar, agrupados de los Like

    Vamos a agrupar los LIKE.

  • 8 Filtros para el listado: Llenar formulario, categorías

    Vamos a llenar el listado de categorías y etiquetas.

  • 9 Filtros para el listado: Llenar formulario, etiqueta por categoría

    Vamos a llenar las etiquetas dada la categoría.

  • 10 Segunda forma de filtrar, agrupado

    Veremos una segunda implementación a los filtros.

  • 11 Valores anteriores

    Mostraremos los valores anteriores.

  • 12 Limpiar filtro

    Crearemos una función para limpiar los filtros.

  • 13 Página de detalle: Mostrar etiquetas e imágenes

    Vamos a mostrar el resto de las relaciones de la película.

  • 14 Mostrar imagen, categoría y etiquetas en listado de películas

    Vamos a mostrar una imagen en el listado de películas.

  • 15 Películas por categoría

    Vamos a obtener un listado de películas por categoría.

  • 16 Películas por etiqueta

    Vamos a obtener un listado de películas por etiqueta.

Rest api relaciones métodos personalizados

  • 1 Introducción

  • 2 Paginado

    Crearemos un listado paginado en la rest api.

  • 3 Paginado full con búsqueda y filtros

    Crearemos un listado paginado con filtros.

  • 4 Películas por categoría

    Obtendremos un listado paginado en base a las categorías.

  • 5 Películas por etiqueta

    Obtendremos un listado paginado en base a las etiquetas.

  • 6 Detalle pelicula

    Modificaremos el detalle de las películas con los nuevos campos.

  • 7 Crear y actualizar película: Categoría

    Vamos a modificar los procesos existentes para colocar la categoría.

  • 8 Crear y actualizar película: Etiqueta

    Vamos a crear el proceso para administrar etiquetas desde una película.

  • 9 CRUD etiquetas

    Crearemos un CRUD para las etiquetas.

  • 10 Upload

    Crearemos un método para realizar el upload de imágenes.

  • 11 Upload: Eliminar imágenes

    Crearemos un método para eliminar las imágenes de una película.

  • 12 Publicar en github

Shield

  • 1 Instalar y configurar

    Vamos a conocer shield, crear un proyecto y configurarlo.

  • 2 Shield: Resumen

    Vamos a conocer las páginas principales creadas por shield.

Shield: Grupos y Permisos

  • 1 Introducción

  • 2 Crear sistema de pantallas

    Vamos a crear un esquema básico para poder hacer las simulaciones de grupos y permisos de Shield.

  • 3 Crear usuarios

    Crearemos algunos usuarios de ejemplo.

  • 4 Sistema de permisos a usuarios: Listado de usuarios

    Crearemos un controlador para manejar los usuarios, permisos y grupos.

  • 5 Sistema de permisos a usuarios: Detalle de usuario

    Crearemos un listado de grupos y permisos.

  • 6 Sistema de permisos a usuarios: Listado de permisos, pruebas

    Vamos a realizar algunas pruebas, conocer los modelos de los grupos y permisos y leer el archivo de configuración de AuthGroup.

  • 7 Sistema de permisos a usuarios: Listado de permisos y grupos

    Vamos a crear un listado de grupos y permisos.

  • 8 Clasificar permisos por grupos

    Vamos a clasificar los permisos de los usuarios por grupo.

  • 9 Demo: Conocer asignación de grupos y permisos

    Vamos a ver una demostración sobre el uso de los grupos y permisos.

  • 10 Reto: Asignar/remover permisos con un click

    Vas a crear la asignación y eliminación de un permiso al dar click en los botones.

  • 11 Terminar implementación

    Daremos los toques finales sobre la implementación anterior.

  • 12 Reto: Asignar/remover grupos con un click

    Realizaremos la misma operación anterior, pero, con los grupos.

  • 13 Reto: Iterar matriz de grupos

    Vamos a iterar la matriz de los grupos y permisos.

  • 14 Demo: Sincronizar

    Vamos a ver una demostración de las funciones de sincronización de permisos y grupos.

  • 15 Proteger app: Definir permisos

    Vamos a definir los permisos a usar en el resto de la sección.

  • 16 Proteger app: Módulo de usuario

    Vamos a proteger el módulo de usuario.

  • 17 Proteger app: Redirecciones y limitaciones en la vista

    Vamos a crear la lógica de redirecciones y limitaciones para acceder a recursos en la vista.

  • 18 Proteger app: Filtro para proteger módulo de usuarios

    Vamos a crear el filtro para verificar si el usuario está autenticado.

  • 19 Proteger: controladores de ejemplo y redirecciones

    Vamos a trabajar en los controladores de ejemplos.

Extra: Avanzado - Más componentes de CodeIgniter 4

  • 1 Procesamiento de imágenes: fit

    Operación fit para las imágenes cargadas en la carpeta upload.

  • 2 Procesamiento de imágenes: crop

    Operación crop para las imágenes cargadas en la carpeta upload.

  • 3 Procesamiento de imágenes: quality

    Operación quality para las imágenes cargadas en la carpeta upload.

  • 4 Procesamiento de imágenes: rotating

    Operación de rotación para las imágenes cargadas en la carpeta upload.

  • 5 Procesamiento de imágenes: resizing

    Operación de escalado para las imágenes cargadas en la carpeta upload.

  • 6 Procesamiento de imágenes: múltiples operaciones

    Múltiples operaciones sobre la imagen.

  • 7 Caché de las páginas

    Vamos a conocer el uso de la caché de las páginas web en nuestra aplicación.

  • 8 Caché de los datos

    Vamos a aprender a guardar caché de registros o arrays en CodeIgniter y eliminar las mismas.

  • 9 Introducción a las configuraciones personalizadas

    Vamos a aprender a crear archivos de configuraciones y propiedades en CodeIgniter.

  • 10 Generar logs de sistema

    Vamos a aprender a cómo podemos generar archivos logs de diversos niveles en nuestra app y cómo funcionan en nuestro framework.

  • 11 Generar archivos de lenguaje

    Vamos a aprender a cómo podemos crear nuestros archivos de configuración para convertir nuestra app en multilenguaje.

  • 12 Detectar el idioma del cliente y traducir la app con los lenguajes soportados

    Vamos a aprender a detectar el idioma del navegador del usuario desde CodeIgniter 4.

  • 13 Traducir un formulario

    Vamos a hacer un ejercicio de traducción en español e ingles para el CRUD de categorías.

  • 14 Objeto request

    Vamos a analizar que podemos obtener con el objeto request de CodeIgniter 4.

  • 15 Transacciones

    Vamos a aprender el uso de las transacciones en la base de datos, para que en caso de que ocurra una excepción, devolver todas las operaciones realizadas en este bloque.

  • 16 Metadata de la base de datos

    Vamos a conocer un conjunto de funciones que nos permitirá obtener metadatos de la base de datos configurada al proyecto.

Extra: Trabajando con librerías

  • 1 Métodos put, patch y delete

    Vamos a conocer un mecanismo que nos permitirá enviar peticiones vía Put, Patch o delete enmascarado.

  • 2 Haciendo peticiones HTTP (CURL): get y delete

    Vamos a aprender a enviar peticiones http en CodeIgniter: get y delete.

  • 3 Haciendo peticiones HTTP (CURL): post y put

    Vamos a aprender a enviar peticiones http en CodeIgniter: post y put.

  • 4 Detectando el agente (tipo de dispositivo y navegador)

    Vamos a aprender a detectar el dispositivo y navegador que esté empleando nuestro usuario.

  • 5 Enviando emails

    Vamos a enviar emails empleando Mailtrap.

  • 6 Encriptando textos

    Vamos a aprender a proteger nuestros textos encriptando los mismos.

  • 7 Trabajando con fechas

    Vamos a aprender a trabajar con las fechas, obtener la fecha actual a futuro o pasado.

  • 8 Trabajando con las URIs

    Vamos a aprender a trabajar con las URIs y URLs y obtener datos de la misma.

  • 9 Trabajando con archivos

    Vamos a aprender a trabajar con los archivos empleando CodeIgniter 4 que nos brinda un conjunto de funciones para tal fin.

Extra: Trabajando con helpers

  • 1 Array Helper

    Vamos a conocer un helper que nos permite buscar entre la estructura del array fuente.

  • 2 File System

    Vamos a conocer como podemos obtener las carpetas y archivos en base a path y crear archivos.

  • 3 Number

    Vamos a ver cómo podemos trabajar con números y su representación en kb,mb, etc, números en cantidades etc.

  • 4 Text helper

    Vamos a conocer algunas funciones bastante interesantes para trabajar con textos, por ejemplo, generar string aleatorios.

  • 5 Url Helper

    Vamos a conocer algunas funciones para crear URLs y manejar las mismas.

Crear nuestro propio sistema de CRUD automatizado

  • 1 Introducción

  • 2 Explorar inspiración para el proyecto

    Vamos a explorar algunos proyectos para buscar inspiración sobre el proyecto que vamos a llevar a cabo en esta sección.

  • 3 Crear controlador maestro

    Vamos a crear el controlador base y maestro para las operaciones CRUD.

  • 4 Crear controlador de ejemplo para el CRUD

    Vamos a crear un controlador de apoyo que herede o implemente el controlador maestro/base definido anteriormente.

  • 5 Crear listado inicial: Generar Datos

    Vamos a generar el listado de datos con el cual vamos a trabajar.

  • 6 Obtener las columnas de la tabla

    Vamos a obtener el nombrado de las columnas de los registros con los cuales vamos a trabajar.

  • 7 Obtener la URL o URI desde el request

    Vamos a ver cómo podemos obtener la URI o URL desde el request.

  • 8 Crear listado inicial: Construir tabla

    Vamos a construir la vista para el listado de la tabla.

  • 9 Crear listado inicial: Construir enlace del CRUD: Edición

    Vamos a construir el enlace de edición y la sección para las acciones.

  • 10 Crear listado inicial: Construir cabecera

    Vamos a construir la cabecera de la tabla.

  • 11 Cargar vistas para la cabecera y el footer

    Vamos a emplear vistas personalizadas para el layout base del CRUD.

  • 12 Definir un modelo para el CRUD mediante una función

    Vamos a definir la opción o propiedad para indicar con qué modelo vamos a trabajar.

  • 13 Crear función para editar registros

    Vamos a crear una función para editar los registros.

  • 14 Crear función para obtener el baseURL del proyecto + URI base

    Vamos a crear un método para poder operar fácilmente con la URL base de nuestra app + la uri principal del controlador.

  • 15 Crear vista para editar registros

    Vamos a crear la página inicial para editar un registro.

  • 16 Definir función para actualizar los registros

    Vamos a crear la función inicial para editar un registro.

  • 17 Definir tipos de campos según campos en la base de datos (controlador)

    Vamos a crear el proceso o función que se encarga de analizar el tipo de columna para indicar que tipo de campo de formulario tiene que construir.

  • 18 Crear esquema para definir tipos de campos para el formulario (vista)

    Vamos a crear los tipos de campo según el proceso anterior.

  • 19 Valor anterior en los formularios

    Vamos a establecer el método de old para guardar los valores anteriores.

  • 20 Definir función y vista para la creación

    Vamos a crear la función y vista para la fase de inserción.

  • 21 Crear función para insertar un registro

    Vamos a crear la función de registrar o insertar un registro.

  • 22 Definir validaciones

    Vamos a aplicar validaciones sobre el formulario.

  • 23 Crear listados de selección para las relaciones foráneas en el controlador

    Vamos a crear un conjunto de métodos para el manejo de las relaciones foraneas.

  • 24 Crear listados de selección para las relaciones foráneas en la vista

    Vamos a consumir el listado anterior.

  • 25 Crear listados de selección: Detalles finales

    Vamos a resolver algunos pequeños detalles que dejamos pendiente.

  • 26 Crear listados de selección: selección por defecto en edición

    Vamos a establecer un option del select por defecto en edición.

  • 27 Ocultar campo de id

    Vamos a ocultar el campo de ID del formulario.

  • 28 Eliminar: Configurar modal al momento de dar clic en un enlace

    Vamos a abrir un modal al dar click en un botón.

  • 29 Eliminar: Crear función en el controlador para eliminar

    Vamos a crear la función que se va a encargar de eliminar un registro.

  • 30 Eliminar: Definir formulario para eliminar registro

    Vamos a definir el formulario y lógica para eliminar un registro.

  • 31 Activar la paginación en la tabla

    Vamos a adaptar una opción para habilitar la paginación en nuestro listado.

  • 32 Labels para el formulario y tabla/listado

    Vamos a adaptar un listado de labels para representar las columnas.

  • 33 Demo: Mostrar excepción con configuración incorrecta

    Vamos a mostrar un ejemplo de unas validaciones sobre alguna propiedad definida.

Sistema de Facturación

  • 1 Introducción

  • 2 Crear Proyecto

    Crearemos un nuevo proyecto mediante composer y configuración de la base de datos.

  • 3 Migración: Categoría y etiquetas

    Vamos a crear las migraciones de las categorías y las etiquetas.

  • 4 Migración: Producto

    Vamos a crear la migración para los productos.

  • 5 CRUD para las categorías

    Vamos a crear un sencillo CRUD para las categorías.

  • 6 Extra: Mostrar errores del formulario

    Vamos a mostrar los errores de los formularios por sesión SOLO si no te funciona el esquema original.

  • 7 CRUD para las etiquetas

    Vamos a crear el CRUD para las etiquetas.

  • 8 Agrupar rutas y cambiar el namespace

    Vamos a agrupar unas rutas y guardar nuestros controladores CRUD en una carpeta.

  • 9 CRUD para los productos, enfoque inicial

    Vamos a crear el CRUD para los productos, replicando nuevamente lo que hicimos anteriormente.

  • 10 CRUD para los productos, resto de los campos

    Vamos a crear el CRUD para el resto de los campos que definimos en la migración.

  • 11 CRUD para los productos, plugin WYSIWYG

    Vamos a instalar un plugin para el contenido enriquecido de la descripción del texto vía la CDN.

  • 12 CRUD para los productos, Terminar listado de productos

    Colocaremos el resto de los campos para el listado de productos.

  • 13 Generar un PDF: Instalar la herramienta y primeras pruebas

    Vamos a generar a instalar una librería para los pdf y generar un documento PDF de ejemplo.

  • 14 Aumentar las cantidades y devolver una respuesta json

    Vamos a registrar en la base de datos los cambiosq ue realicemos mediante el aumento del stock.

  • 15 CRUD para los productos, Generar migración para manejar el stock

    Vamos a generar una migración para manejar las salidas y entradas de nuestros productos.

  • 16 CRUD para los productos, Generar modelo para el control de los productos

    Vamos a generar el modelo para el control de los productos.

  • 17 CRUD para los productos, Registrar log (ProductControl) en la función addStock

    Vamos a modificar la función para agregar entradas.

  • 18 CRUD para los productos, Aumentar cantidades desde el listado

    Mediante un input y una petición fetch, vamos a registrar el aumento de los productos.

  • 19 Extra: CRUD para los productos, Remover flechas input number

    Una rápida explicación de cómo podemos remover las flechas de los campos de formulario de tipo número.

  • 20 CRUD para los productos, Remover cantidades desde el listado

    Mediante un input y una petición fetch, vamos a registrar la salida de los productos.

  • 21 CRUD para los productos, Adaptar pase de id y a todos los productos

    Vamos a pasar el ID para la petición así como adaptar que cualquier producto pueda ser editado.

  • 22 CRUD para los productos, Validar datos de entrada desde el controlador

    Vamos a validar la data de entrada mediante el esquema de validación que nos ofrece Codeigniter 4.

  • 23 CRUD para los productos, Verificar respuesta del servidor desde la vista

    Vamos a procesar la respuesta del servidor que generamos anteriormente desde la vista.

  • 24 CRUD para los productos, replicar los pasos anteriores

    Vas a replicar las dos últimas operaciones sobre otra función.

  • 25 CRUD para los productos, Convertir las funciones anteriores una petición POST

    Vamos a convertir las funciones de get a POST.

  • 26 Generar migración y modelo para el cliente/usuario de la app

    Vamos a crear la migración y modelo para nuestros usuarios.

  • 27 Actualizar Stock en el listado

    Vamos a actualizar el stock del listado desde JavaScript.

  • 28 Seeds, Generar usuarios de prueba

    Vamos a generar usuarios de prueba para emplear en la aplicación.

  • 29 Registrar usuario en ProductsControl, generar migración

    Vamos a conocer como modificar una migración existente para agregar nuevas columnas.

  • 30 Reto: Modificar migración de tipos para los usuarios

    Vas a cambiar otra migración para modificar una columna.

  • 31 Crear un componente con un listado de usuarios/customers

    Vamos a crear un componente que vamos a emplear cuando asignemos una salida desde el listado.

  • 32 Aceptar el usuario desde el controlador

    Vamos a procesar la petición completa, registrando el usuario.

  • 33 Reto: Realizar los pasos correspondientes para la salida de mercancia

    Vas a replicar los pasos realizados hasta este punto.

  • 34 Pasar tipo para indicar el recurso a consumir

    Vamos a crear un atributo desde los botones para definir el tipo.

  • 35 Crear función json para mostrar los proveedores o clientes

    Vamos a crear una función para consumir o clientes o proveedores.

  • 36 Consumir la función anterior desde la vista para popular el select

    Vamos a desarrollar un JavaScript para mostrar ya sea los proveedores o clientes.

  • 37 Validar que el tipo de usuario sea válido

    Vamos a verificar que el usuario sea el tipo según cada acción que queramos emplear.

  • 38 Crear una validación personalizada: Validar el usuario

    Con la funcionalidad que creamos anteriormente para validar los usuarios, vamos a crear una validación personalizada.

  • 39 Crear una validación personalizada: Pasar el tipo

    Vamos a adaptar otra validación más genérica en la cual podamos pasar parametros desde la definición de la regla.

  • 40 Crear una validación personalizada: Verificar validaciones en el controlador

    Vamos a aplicar las validaciones desde los controladores.

  • 41 Verificar que existe stock al momento de realizar una venta

    Vamos a evitar el stock negativo.

  • 42 ¿Validar el producto desde el request?

    Vamos a hablar sobre las validaciones sobre los productos.

  • 43 Generar migración y modelo para ProductUserControl

    Vamos a generar las migraciones para mantener más información sobre el proceso de un producto.

  • 44 Formulario para registrar compra (proveedores) y venta (clientes)

    Vamos a colocar más campos para el campo de compra/venta del producto.

  • 45 Mostrar errores por el diálogo

    Vamos a mostrar los errores de formulario en el diálogo.

  • 46 Reiniciar el diálogo

    Vamos a reiniciar el formulario al enviar el mismo.

  • 47 Mostrar el detalle (traza) del producto: entradas y salidas

    Vamos a crear un listado para ver todas las operaciones realizadas para un producto.

  • 48 Calcular el total

    Vamos a calcular el total en los montos de la traza.

  • 49 Filtros en la traza

    Vamos a filtrar por los tipos de ventas, salida o entrada.

  • 50 Filtros en la traza: Recordar selección al recargar la página

    Vamos a establecer la opción del tipo seleccionado según la selección del usuario.

  • 51 Filtros en la traza: Usuario

    Crearemos un filtro para el usuario.

  • 52 Filtros en la traza: Cantidad, lado del cliente

    Vamos a crear un filtro por rango para las cantidades.

  • 53 Filtros en la traza: Cantidad, lado del servidor

    Vamos a recibir los datos desde el servidor.

  • 54 Filtros en la traza: Cantidad, activar/desactivar y detalles finales

    Filtros en la traza: Cantidad, activar/desactivar y detalles finales

  • 55 Filtros en la traza: Filtrar los usuarios por tipo

    Vamos a crear un filtro por usuario.

  • 56 Filtros en la traza: Campo de búsqueda

    Vamos a crear un campo de búsqueda para los filtros y buscar por varias columnas.

  • 57 Filtros en la traza: Campo de búsqueda, búsqueda por tokens

    Potenciaremos el campo de búsqueda buscando por palabras.

  • 58 Filtros en la traza: Limpiar formulario

    Opción para limpiar los filtros.

  • 59 Demo: Generar PDF de la traza del producto

    Con la estructura que tenemos actualmente, vamos a generar un pdf.

  • 60 Categorías: Definir en el CRUD

    Vamos a definir las categorías en el flujo básico del CRUD, crear y actualizar

  • 61 Categorías: Filtro en el listado

    Crearemos un filtro de categorías en el listado.

  • 62 Tags, relaciones muchos a muchos: Definir migración de productos y tags

    Vamos a crear la migración para la tabla pivote de las relaciones muchos a muchos.

  • 63 Tags: Insertar tags en actualizar parte 1, actualizar y validaciones

    Vamos a trabajar en parte de la actualización, que sería en la inserción de datos en la base de datos.

  • 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

    Vamos a configurar el select multiple para que trabaje tanto con los valores actuales como los anteriores del formulario.

  • 66 Tags: Eliminar tags NO seleccionados

    Vamos a crear la consulta a la base de datos para eliminar las etiquetas.

  • 67 Tags: Filtro en el listado, groupBy y joins

    Vamos a crear un filtro por etiquetas en el listado.

  • 68 Tags: Filtro en el listado, selected en los tags

    Vamos a dejar seleccionado por defecto los tags del usuario.

  • 69 Tags: Filtro en el listado, búsqueda individual de etiquetas (otra forma)

    Vamos a ver otra posible solución la búsqueda por tags.

  • 70 Tags: Filtro en el listado, checkbox en vez de select multiple

    Presentaremos otra variación para nuestro select multiple de tags.

  • 71 Publicar en git

Sistema de Facturación: Bootstrap 5

  • 1 Introducción

  • 2 Sobre el proyecto

    Vamos a hablar sobre el proyecto con el cual vamos a trabajar en esta sección.

  • 3 Instalar Bootstrap 5

    Vamos a instalar y configurar Bootstrap 5 en el proyecto.

  • 4 Configurar el layout (container) y estructura HTML básica

    Configuraremos el aspecto más global de la aplicación que es la del container.

  • 5 Configurar botones

    Configuraremos los botones para algunas pantallas.

  • 6 Configurar formularios

    Vamos a aplicar los form-control sobre los formularios.

  • 7 Configurar formularios

    Vamos a aplicar los form-control sobre los formularios.

  • 8 Configurar el header

    Vamos a configurar un navbar para la app.

  • 9 Listado: Filtros

    Vamos a trabajar con los el diseño de los filtros en la vista de index.

  • 10 Traza: Características

    Vamos a trabajar en la parte de las características en la pantalla de trazas.

  • 11 Tablas

    Vamos a trabajar en las tablas.

  • 12 Paginación

    Definiremos el diseño para la paginación.

  • 13 Modal para formulario para registrar compra (proveedores) y venta (clientes)

    Vamos a trabajar en el formulario para realizar las ventas y movimientos de nuestros productos, lo convertiremos en un modal.

  • 14 Mostrar errores formulario

    Vamos a mostrar los errores de los formularios.

  • 15 Publicar en git

Extra: Integrar la SDK de Facebook

Integrar PayPal en CodeIgniter

  • 1 Introducción

  • 2 Crear aplicación en CodeIgniter y estructura base

    Vamos a crear un nuevo proyecto y funciones para trabajar en el proyecto.

  • 3 Sitio de desarrolladores de PayPal

    Vamos a conocer las páginas que vamos a usar para trabajar con API de PayPal.

  • 4 CURL Request

    Vamos a conocer el mecanismo a utilizar para realizar peticiones HTTP.

  • 5 Botón de PayPal JS

    Vamos a crear el botón para crear la orden por PayPal.

  • 6 Generar el token de acceso

    Vamos a generar el token de acceso para poder procesar la orden.

  • 7 Demo: Procesar la orden, CURL CodeIgniter

    Vamos a procesar la orden mediante CURL de CodeIgniter.

  • 8 Procesar la orden, CURL PHP

    Vamos a procesar la orden mediante CURL de PHP.

  • 9 Detalles finales

    Vamos a componer la ruta y realizar una petición fetch con la orden.

  • 10 Publicar en git

Extra: CodeIgniter 4 en producción

  • 1 Introducción

  • 2 Apache: Exportar el proyecto vía FTP, archivos a emplear y primeros pasos

    Vamos a dar algunos tips y procesos para lanzar la app en CodeIgniter 4 a Producción.

  • 3 El archivo .env

    Vamos a hablar sobre las configuraciones que tienes que realizar a nivel del proyecto.

  • 4 Configurar CodeIgniter 4 en un dominio y remover el index.php

    Vamos a adaptar la app de CodeIgniter 4 a un dominio.

Archive -Básico - Primeros pasos con CodeIgniter 4

  • 1 Requerimientos de CodeIgniter 4 y software a emplear

    Vamos a hablar sobre el software necesario para poder crear tus aplicaciones en CodeIgniter 4; un XAMPP y un composer básicamente.

  • 2 Instalar CodeIgniter 4 con composer

    Vamos a instalar CodeIgniter 4 mediante composer.

  • 3 Demo: instalar CodeIgniter 4 manualmente

    Vamos a instalar CodeIgniter 4 de manera manual.

  • 4 Ejecutar nuestro CodeIgniter desde el navegador

    Vamos a ejecutar CodeIgniter desde el navegador y de esta manera ver el producto de nuestro trabajo hasta este punto.

  • 5 Demo: Generar URL limpia desde XAMPP o equivalente

    Vamos a generar de manera manual una URL limpia mediante nuestro WAMPP/LAMPP que es una de las características que realiza nuestro Laragon por nosotros.

  • 6 Visual Studio Code como IDE para desarrollar en CodeIgniter

    Vamos a hablar un poco sobre VSC para desarrollar nuestras aplicaciones en PHP.

  • 7 Requisitos para tomar el curso

    Para tomar necesitas tener conocimientos básicos en la programación, que conozcas y entiendas el esquema de MVC, Modelo Vista controlador y que conozcas aspectos de tecnologías web como HTML, CSS y un poco de JavaScript así que hayas creado cualquier app al menos sencilla empleando Bootstrap en cualquier versión y por supuesto, muchas ganas de aprender y trabajar con este tipo de framework.

  • 8 Explicar estructura de un proyecto en CodeIgniter

    Vamos a explicar la estructura de un proyecto en CodeIgniter 4 que nos servirá para crear los distintos componentes más adelante.

  • 9 Rutas, vistas y controlador base

    Vamos a crear la ruta inicial para nuestro controlador base.

  • 10 Crear nuestro primer controlador y ruta asociada

    Vamos a crear nuestro primer controlador y vamos a crear una ruta asociada al mismo para que pueda ser accedido mediante la URL.

  • 11 Crear nuestra segunda ruta, método en el controlador y vista asociada

    Vamos a crear otra función y una vista asociada a la misma.

  • 12 Crear nuestro segundo controlador y organizarlos en una carpeta aparte

    Vamos a crear otro controlador y vamos a crear un método y una vista asociada que es la que va a ser devuelta mediante nuestro controlador.

  • 13 Trabajar con múltiples vistas

    Vamos a trabajar con múltiples vistas, de tal manera que vamos a mejorar nuestra organización y con esto tener una especie de templates para parte de nuestro sistema.

  • 14 Pase de datos entre controlador y vista

    Vamos a aprender a pasar datos entre el controlador y la vista.

  • 15 Rutas: pase de datos a funciones de los controladores

    Vamos a aprender a pasar datos entre las funciones a las vistas.

  • 16 Rutas: Navegación entre páginas

    Vamos a hacer una sencilla navegación entre páginas, teniendo como elemento central la vista de contacto.

  • 17 Rutas: Rutas con nombre

    Vamos a crear rutas con nombre, para definir rutas mediante los enlaces con el nombre de la misma.

  • 18 Rutas: Bug en las rutas

    Vamos a explicar un bug que ocurre actualmente al momento de definir una ruta.

  • 19 Presentación de las migraciones para la planificación de nuestra base de datos

    Vamos a presentar el nuevo mecanismo que tenemos en CodeIgniter 4 para crear nuestra estructura de base de datos y planificar la misma: las migraciones.

  • 20 Crear la conexión a la base de datos

    Antes de crear la base de datos, es necesario crear la conexión de la base de datos.

  • 21 Presentación de la línea de comandos de CodeIgniter

    Vamos a conocer la línea de comandos que nos ofrece CodeIgniter 4: spark

  • 22 Migraciones: Crear la tabla movies

    Vamos a crear nuestra primera migración; la tabla movies.

  • 23 Migraciones: Crear la tabla categories

    Como ejercicio, vamos a crear otra migración para manejar las categorías de nuestras películas.

  • 24 Migraciones: Revertir cambios: rollback

    Vamos a aprender a cómo podemos revertir cambios en la base de datos mediante el comando rollback lo cual es un mecanismo esencial en la planificación de nuestra base de datos.

  • 25 Seeder: Generar datos de prueba en nuestra aplicación

    Vamos a aprender a cómo podemos crear datos de prueba en CodeIgniter 4 mediante los seeder.

  • 26 Seeder: Truncar la tabla desde los seeder

    Antes de ejecutar un seeder, lo ideal es que limpiemos toda la base de datos de registros, en otras palabras, truncar la base de datos.

  • 27 Seeder: Generar muchos registros de prueba

    Vamos a aprender a cómo podemos crear muchos registros de prueba mediante los seeder.

  • 28 Modelo: crear modelo para conectarnos a nuestra base de datos

    Vamos a crear nuestro primer modelo y conectarnos a nuestra base de datos.

  • 29 Modelo: Crear modelo de categorías

    Vamos a crear el siguiente controlador que sería para manejar las categorías.

  • 30 El archivo .env en CodeIgniter 4

    Vamos a presentar y emplear el archivo .env de CodeIgniter 4 para configurar nuestra base de datos.

  • 31 Actualizar CodeIgniter 4

    Vamos a aprender cómo podemos tener nuestro CodeIgniter 4 siempre actualizado con la última versión del framework.

  • 32 ¿Qué hemos aprendido?

Archive -Intermedio - Creando nuestro CRUD

  • 1 Introduccion

  • 2 Crear la vista de listado de las películas

    Vamos a crear el listado inicial para nuestras películas, para eso vamos a conectarnos a nuestro modelo de películas y obtener todos los datos.

  • 3 Más características del findAll()

    Vamos a seguir explorando el findAll para obtener todos los datos de una manera paginada.

  • 4 Paginar registros

    Vamos a conocer el mecanismo oficial para pagina registros de nuestra base de datos y construir links de navegación automáticamente.

  • 5 Rutas: Agrupar rutas

    Vamos a conocer un sencillo mecanismo que tenemos para agrupar rutas en CodeIgniter 4 y de esta manera poder modularizar nuestra aplicación a nivel de rutas.

  • 6 Rutas: Ruta de tipo recurso para nuestro controlador Movie

    Vamos a conocer un nuevo tipo de rutas y vamos a adaptarlo a nuestro proyecto para nuestro CRUD de películas.

  • 7 Crear nuestra función y estructura genérica para el controlador de películas

    Vamos a hacer una pequeña refactorización en nuestro controlador de películas para tener una función que maneje recursos comunes.

  • 8 Definir el formulario para crear películas

    Vamos a crear nuestro formulario para crear las películas y configurarlo con un método en nuestro controlador de películas.

  • 9 Formularios: Recibir los datos

    Vamos a aprender a recibir los datos del formulario que envía nuestro usuario desde una función en el controlador.

  • 10 Formularios: Validar los datos

    Vamos a aprender a validar los datos de formulario mediante la clase Validation de CodeIgniter.

  • 11 Formularios: Mostrar errores en la vista

    Vamos a aprender a mostrar los errores de formulario en una vista.

  • 12 Formularios: Guardar datos en la base de datos

    Una vez procesados y validados los datos, lo siguiente que vamos a aprender es a guardar los datos en nuestra base de datos.

  • 13 Formularios: Campos permitidos para guardar o actualizar

    Formularios: Campos permitidos para guardar o actualizar

  • 14 Formularios: Redirección y mensajes por sesión

    Vamos a aprender a hacer redirecciones y enviar mensajes por sesión.

  • 15 Eliminar registros

    Vamos a aprender a eliminar registros.

  • 16 Actualizar: Crear funciones y vistas asociadas

    Vamos a aprender a actualizar registros, para eso vamos a apoyarnos en el formulario de creación.

  • 17 Actualizar: valores por defecto y anterior en el formulario

    Vamos a aprender a emplear la función old en conjunto con las redirecciones en CodeIgniter.

  • 18 Definir un formulario base para la creación y actualización

    Vamos a definir un formulario base y únicos para emplear tanto en actualizar como en crear.

  • 19 Crear partials para los mensajes de sesión y errores de formulario

    Vamos a crear un par de vistas para manejar los mensajes de errores del formulario y de sesión.

  • 20 Botón para crear

    Vamos a implementar un enlace para crear registros.

  • 21 Cargar imágenes o archivos

    Vamos a aprender a cargar archivos o imágenes en CodeIgniter, mover a un ubicación en específico y renombrar el mismo.

  • 22 Validaciones adicionales al momento de cargar la imagen

    Validaciones adicionales al momento de cargar la imagen

  • 23 Crear tabla (migración) para guardar imágenes

    Vamos a crear una nueva migración para manejar las imágenes de las películas.

  • 24 Cargar imágenes y registrar en la base de datos

    Vamos a aprender a registrar las imágenes cargadas en la base de datos (el nombre de las mismas).

  • 25 Redirección a actualizar en vista de creación

    Vamos a crear una redirección a la vista de crear una vez que actualizamos el registro.

  • 26 Personalizar formulario de creación/edición

    Vamos a personalizar el formulario de creación o edición según si estamos en modo creación o edición.

  • 27 Crear carpeta para guardar imágenes

    Vamos a crear carpetas de manera dinámica para cargar imágenes organizadas por el ID de la película.

  • 28 Verificar id nulo

    Vamos a hacer algunas verificaciones y conocer el uso de las excepciones en CodeIgniter 4 para mostrar errores cuando el ID no es encontrado o el registro asociado al mismo.

  • 29 Modificar migración de movie para las categorías: rollback y refresh

    Vamos a aprender a emplear los comandos de rollback y refresh para las migraciones.

  • 30 Crear seeder para las categorías

    Vamos a crear un seeder de categorías.

  • 31 Crear listado de categorías

    Vamos a crear el select de categorías en el formulario de gestión de las películas.

  • 32 Listado de categorías en actualizar película

    Vamos a hacer los cambios para que pueda ser procesado la categoría desde la edición de la película.

  • 33 Mostrar categoría en listado de películas

    Vamos a agregar las categorías para el listado de películas haciendo un join en el pagination.

  • 34 Validar datos de formulario mediante una clase aparte

    Vamos a manejar las validaciones del formulario desde un archivo aparte.

  • 35 Aprendido

Archive - Intermedio - Instalar y configurar Bootstrap en la aplicación

  • 1 Introduccion

  • 2 Instalar la CDN de Bootstrap 4 o 5 y dependencias en CodeIgniter 4

    Vamos a aprender a instalar bootstrap mediante la CDN en nuestro proyecto.

  • 3 Opcional: Emplear Bootstrap 5

  • 4 Bootstrap: Configurar las tablas

    Vamos a aprender a configurar las tablas para que tomen el diseño de Bootstrap.

  • 5 Bootstrap: Configurar formulario

    Vamos a aplicar el diseño de Bootstrap al formulario.

  • 6 Bootstrap: Configurar el layout de la app

    Vamos a configurar el layout de la app para que no ocupe todo el ancho de la pantalla.

  • 7 Bootstrap: Alert para los mensajes

    Vamos a trabajar con los alert para mostrar los mensajes de sesión.

  • 8 Bootstrap: Links de paginación y creación de vista personalizada en CodeIgniter

    Vamos a construir los links de paginación en Bootstrap, definiendo las clases y también vamos a personalizar la plantilla de los links en CodeIgniter.

  • 9 Activar la clase de paginación

    Vamos a definir el header de nuestra app con los enlaces de navegación.

  • 10 Bootstrap: header o cabecera de nuestra app

    Vamos a definir el header de nuestra app con los enlaces de navegación.

  • 11 Personalizar los errores de formulario en CodeIgniter 4

    Vamos a personalizar la plantilla de los errores en CodeIgniter para mostrar un componente de Bootstrap.

  • 12 CRUD imágenes movies: Listar

    Vamos a crear un listado de imágenes de la película seleccionada en la edición.

  • 13 CRUD imágenes movies: Procesar y devolver desde el servidor

    Vamos a procesar las imágenes de nuestro servidor para poder devolver las mismas mediante una ruta.

  • 14 CRUD imágenes movies: get y validar errores al momento de proceso

    Vamos a expandir la función que procesa nuestra imagen, para eso vamos a validar posibles errores y soporte vía get de los parámetros.

  • 15 CRUD imágenes movies: Definir la nueva ruta

    Vamos a definir una ruta para las imágenes de las películas.

  • 16 CRUD imágenes movies: Columnas en Bootstrap

    Vamos a seguir con el diseño de nuestro listado de películas y vamos a colocar las imágenes dentro de un grid.

  • 17 CRUD imágenes movies: Eliminar imágenes, botón personalizado

    Vamos a definir un botón o enlace para eliminar las imágenes.

  • 18 CRUD imágenes movies: Eliminar imágenes, dar funcionalidad al botón

    Vamos a dar funcionalidad desde una función en el controlador para borrar la imagen.

  • 19 Vista de detalle: Cartas en Bootstrap

    Vamos a definir el detalle de una película en un componente en de carta en Bootstrap.

  • 20 Vista de detalle: Carrusel de imágenes

    Vamos a seguir con la vista de detalle y vamos a crear un carrusel para mostrar todas las imágenes de películas.

  • 21 Instalar Font Awesome para nuestros íconos

    Vamos a instalar nuestro paquete de íconos para colocar en nuestros botones.

  • 22 Incorporar tooltip en el listado

    Vamos a definir los mensajes del tooltip para los botones y definir mediante mensajes las acciones que van a realizar.

  • 23 Tarea: CRUD de categorías

    Vamos a duplicar todo lo que hemos hecho hasta este punto para crear el módulo CRUD de películas para emplearlo en el CRUD de las categorías.

  • 24 Detalles: Centrar paginación, título, ancho extra descripción

    Vamos a realizar una sencillas correcciones a nivel visual en nuestra aplicación.

  • 25 ¿Qué hemos aprendido?

Archive - Intermedia - Creando nuestro módulo de login y usuario

  • 1 Introduccion

  • 2 Crear ruta y controlador para el login

    Vamos a crear las rutas, y controlador para entender la organización que vamo a llevar a cabo para el módulo de usuario.

  • 3 Crear vista para el login

    Vamos a crear la vista de login empleando un snippets.

  • 4 Crear migración y modelo para el usuario

    Vamos a crear una migración para la estructura de la tabla de usuarios y también el modelo.

  • 5 Mover controlador de Usuarios

    Vamos a realizar una pequeña organización en nuestra aplicación para que podamos crear otro controlador llamado User para la gestión.

  • 6 CRUD de usuarios: proceso inicial

    Vamos a realizar el CRUD básico para el usuario.

  • 7 CRUD de usuarios: crear un hash de la contraseña con un helper

    Vamos a seguir trabajando en el CRUD de nuestra aplicación y vamos a definir el hash de nuestro password mediante un helper personalizado y una función de PHP.

  • 8 Verificar si el password es correcto

    Vamos a crear una función en nuestro helper que verifique si el password/hash en correcto.

  • 9 Procesar formulario de login

    Vamos a trabajar para recibir los datos vía post de nuestro usuario, vamos a manejar los errores de manera manual y hacer la comparación del hash del password.

  • 10 Presentación de la sesión

    Vamos a evaluar el uso de la sesión, conocer sus característica y dar un pequeño ejemplo.

  • 11 Cerrar sesión

    Vamos a implementar el cerrado de la sesión o destrucción de la misma.

  • 12 Guardar datos de login en sesión

    Vamos a seguir trabajando con el procesado de los datos del usuario, y una vez que los datos son válidos, los establecemos en sesión.

  • 13 Terminar de procesar la petición para el login

    Vamos a terminar de trabajar con el Post del login, y vamos a implementar las redirecciones.

  • 14 Opción de cerrar sesión desde el header/nav

    Vamos a colocar un enlace para cerrar la sesión desde el header del dashboard.

  • 15 Introducción a los filtros: Proteger el módulo de dashboard

    Vamos a implementar un filtro para que solamente los usuarios con tipo o rol de admin puedan ingresar al dashboard.

  • 16 Parámetros obligatorios en los filtros

    Importante

  • 17 ¿Qué hemos aprendido?

Archive - Creando una tienda de películas

  • 1 Introduccion

  • 2 Crear controlador base

    Vamos a crear el controlador madre para esta sección.

  • 3 Crear vistas base

    Vamos a crear las vistas principales que vamos a emplear en esta sección (template) y la de listado.

  • 4 Crear vista de listado de películas

    Vamos a crear las vista de listado de las películas.

  • 5 Obtener una imagen por película y paginar los resultados

    Vamos a obtener referencia a una imagen del listado de las películas.

  • 6 Mostrar la imagen en el listado

    Vamos a pintar una imagen en el listado de películas y terminar la consulta.

  • 7 Crear la estructura para el detalle de la película

    Vamos a crear la estructura para mostrar el detalle de la película.

  • 8 Limitar cantidad de texto en el listado de películas

    Vamos a limitar la cantidad de texto que vamos a colocar para cada película en en listado.

  • 9 Agregar columna para el precio a la película

    Vamos a agregar una columna precio para las películas en la tabla.

  • 10 Agregar un botón y ruta para comprar una película

    Vamos a agregar un botón y ruta para comprar una película.

  • 11 Sobre la SDK de PayPal

    Sobre la SDK de PayPal

  • 12 Instalar la SDK de PayPal para hacer un cobro

    Vamos a instalar la SDK de PayPal, oficial para hacer una compra.

  • 13 Crear cuenta de desarrollo para PayPal

    Vamos a crear las cuentas de PayPal para desarrollar.

  • 14 Adaptar la aplicación para hacer un pago genérico (generar link para el pago)

    Vamos a crear nuestro primer pago genérico a la plataforma de PayPal.

  • 15 Configurar página para realizar el pago vía PayPal (buy)

    Vamos a configurar la página para realizar el pago de PayPal.

  • 16 Crear migración para registrar los pagos: Payment

    Vamos a crear una migración para realizar el pago.

  • 17 Crear modelo Payment

    Vamos a crear el modelo para guardar los pagos desde nuestro framework.

  • 18 Configurar el login obligatorio para comprar una película

    Vamos a configurar que el login es requerido al momento de intentar comprar una película.

  • 19 Validar que el usuario esté autenticado al momento de comprar una película

    Vamos a verificar si el usuario está autenticado al momento de dar click sobre el botón de comprar.

  • 20 Realizar la compra de una película mediante PayPal

    Vamos a terminar el proceso de compra de PayPal de nuestra película.

  • 21 Crear página de listado de las compras

    Vamos a crear un listado de compras realizadas por el usuario.

  • 22 Crear página de detalle de la compra

    Vamos a crear una página de detalle de compras realizadas.

  • 23 Redireccionar a la vista de detalle una vez realizada la compra (buy_success)

    Vamos a crear la redirección al momento de comprar un producto a la vista de detalle.

  • 24 Agregar enlace para compras del usuario

    Vamos a agregar el enlace de comprar para ver el listado de los productos comprados.

  • 25 Crear helper para formato de las fechas

    Vamos a crear un helper para mostrar las fechas en otro formato.

  • 26 Crear controlador para cargar sesión

    Vamos a cargar la sesión de manera global.

  • 27 Guardar el PaypalID y el tipo de pago

    Vamos a crear un formulario para realizar búsquedas.

  • 28 Crear buscador de películas: Formulario

    Vamos a crear un formulario para realizar búsquedas.

  • 29 Crear buscador de peliculas: Consulta

    Vamos a hacer la consulta SQL del formulario de búsqueda anterior.

  • 30 Crear buscador de peliculas: Filtrar por categorías

    Vamos a agregar un filtro por las categorías.

  • 31 Crear buscador de películas: Colocar valores por defecto en la selección

    Vamos a imprimir los valores por defecto que coloque nuestro usuario al momento de empelar el buscador.

  • 32 Integrar Stripe en CodeIgniter 4

    Vamos a integrar la SDK de Stripe de PHP en CodeIgniter 4 mediante composer.

  • 33 Crear una cuenta y la Api Key para la app en desarrollo

    Vamos a registrarnos en Stripe y generar una Api Key.

  • 34 Crear la intentencion de pago (PaymentIntent) y generar la clave secreta

    Vamos a crear la especie de factura o intención de pago en Stripe.

  • 35 Conociendo los fetch para consumir la clave secreta para realizar un pago

    Vamos a terminar de definir el código fundamental para realizar una compra de nuestra tienda.

  • 36 Terminando de establecer el código para realizar un pago con Stripe

    Vamos a terminar de definir el código fundamental para realizar una compra de nuestra tienda.

  • 37 Resolviendo el problema con el Toolbar Debug de CodeIgniter 4

    Vamos a resolver un bug del framework que imposibilita consumir el json correctamente.

  • 38 Demo: Realizando un pago y comprando el mismo

    Vamos a realizar un pago de demostración y comprobar el mismo.

  • 39 Procesar un pago vía Stripe bajo demanda: Separar vista de detalle y Stripe

    Vamos a definir todo el contenido de Stripe en una vista aparte.

  • 40 Crear un modal en Bootstrap 4

    Vamos a crear un modal de Bootstrap 4 para luego configurarlo con el formulario de Stripe.

  • 41 Crear un modal para procesar el pago de Stripe: Petición fetch desde vista show

    Vamos a configurar el formulario de Stripe en el modal, para eso vamos a consumir el formulario de Stripe desde un fetch.

  • 42 Mover JavaScript clave de Stripe a la función de detalle

    Vamos a mover el JS del formulario de Stripe para la vista de detalle.

  • 43 Demo: petición vía jQuery Ajax.

    Vamos a hacer la demo con jQuery ajax en vez del fetch.

  • 44 Crear un archivo aparte para manejar el JavaScript de la tienda

    Vamos a crear un archivo para mantener el JavaScript para nuestro Store.

  • 45 Opcional: Colocar precios de la película

    Vamos a definir los precios en la vista de detalle y listado.

  • 46 Realizando un pago para comprar una película

    Vamos a configurar el pago de una película.

  • 47 Refactorizar código JavaScript de Stripe

    Vamos a hacer una pequeña refactorización del código JavaScript que definimos en otro archivo.

  • 48 Definir estilo para el modal de Stripe

    Vamos a variar el estilo del modal que creamos para mostrar la caja de card para Stripe.

  • 49 Validar datos de la compra y registrar en la base de datos

    Vamos a validar los datos de la compra y registrarla en la base de datos.

  • 50 Crear fetch para enviar la petición con el identificador del pago

    Vamos a crear una petición fetch para finalmente registrar el pago.

  • 51 Devolver y consumir respuesta del procesamiento del pago

    Vamos a devolver y consumir la respuesta del procesamiento del pago.

  • 52 Colocar detalle del tipo de pago en las compras

    Vamos a colocar el tipo de pago (stripe/paypal) en en listado de las compras y el detalle.

  • 53 Colocar detalle del tipo de pago en las compras

    Vamos a crear un archivo de configuración para manejar las credenciales.

  • 54 Archivo de configuración: Credenciales de PayPal y Stripe de manera global

    Vamos a crear un archivo de configuración para manejar las credenciales.

  • 55 Archivo de configuración: Emplear las configuraciones en controlador y vistas

    Vamos a emplear el archivo de configuración en nuestro controlador y vista.

  • 56 Definir agrupado de rutas

    Vamos a trabajar con las rutas agrupadas para nuestra tienda en línea.

  • 57 Definir Foreign Key para los pagos

    Vamos a definir una clave foranea de manera demostrativa para la columna de usuarios en la tabla de pagos.

  • 58 PayPal PHP: Explicación de lo que ya tenemos

    Vamos a explicar qué fue lo que logramos en con la integración de la Api versión 1 de PayPal.

  • 59 PayPal PHP: Instalar el Rest Api SDK de PayPal en su versión 2

    Vamos a instalar la última versión de PayPal en nuestro proyecto.

  • 60 PayPal PHP: Generar una orden de prueba

    Vamos a generar una orden de prueba para ver como funciona la plataforma de PayPal.

  • 61 PayPal PHP: Realizar una compra de prueba

    Vamos a realizar una compra de ejemplo con PayPal.

  • 62 PayPal PHP: Comprar una movie

    Vamos a configurar todo para que podamos comprar una movie.

  • 63 PayPal PHP: Procesar respuesta de la compra

    Vamos a trabajar en la respuesta que obtenemos de PayPal para registrar el pago.

Archive - Avanzado - Rest Api en CodeIgniter 4 (Películas)

  • 1 Introducción

    Introducción

  • 2 Empezando con un controlador de tipo Rest

    Vamos a dar los primeros pasos con un controlador de tipo Rest, conocer la estructura y personalizar las respuestas devueltas con json o xml.

  • 3 Instalar PostMan para realizar peticiones a la Rest Api

    Vamos a hablar sobre postman como el programa que vamos a emplear para realizar peticiones a nuestra RestApi.

  • 4 Crear un producto: Definir esquema básico

    Vamos a crear el esquema o la idea básica para crear un producto mediante nuestra Rest Api.

  • 5 Crear un producto: Mostrar los errores de formulario

    Vamos a mostrar los errores de formulario en la RestApi.

  • 6 Crear un producto: Validar categoría válida

    Vamos a crear una regla para validar por la categoría.

  • 7 Normalizar respuesta de la RestApi

  • 8 Mostrar un producto

    Vamos a crear un método para mostrar el detalle de un producto.

  • 9 Eliminar un producto

    Vamos a implementar la eliminación de un producto en la RestApi.

  • 10 Editar un producto

    Vamos a desarrollar el método para actualizar una película mediante Put o Patch.

  • 11 Listado de categorías

    Vamos a crear otro método para obtener todas las categorías de nuestro sistema.

  • 12 Recurso rest paginado

    Vamos a crear un recurso Rest para obtener un listado paginado.

  • 13 Recurso rest con filtros y paginado

    Vamos a crear un recurso Rest para obtener un listado paginado con campos de búsqueda.

  • 14 Respuesta personalizada para los métodos paginados

    Vamos a crear una función que nos devuelva una respuesta personalizada para los métodos de paginación.

- Andrés Cruz

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.

!Cursos desde!

10$

En Udemy

Quedan 4d 16:56!


Udemy

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
¡Hazte afiliado en Gumroad!