Herramientas Informaticas

Etiqueta: CODEIGNITER Página 1 de 4

🛠️ Actualización técnica: validación y subida de imágenes + controlador seguro en boilerplateproducts 🖼️

Entrada fija

🛠️ Actualización técnica: validación y subida de imágenes + controlador seguro en boilerplateproducts 🖼️

En este cambio abordamos varios problemas prácticos que afectaban la subida de imágenes y la robustez del endpoint admin/products/save. Objetivos principales:

  • ✅ Permitir JPG/JPEG además de PNG (y manejar HEIC de iPhone).
  • ✅ Soportar subida desde móvil (cámara/galería).
  • ✅ Validar tipo y tamaño en cliente y servidor (pasamos de 2 MB a 5 MB).
  • ✅ Enviar la imagen con FormData solo si existe y evitar errores por selectores incorrectos.
  • ✅ Mejorar el controlador en CodeIgniter 4: validaciones, rutas absolutas, manejo seguro de archivos, respuestas JSON y logging. 📦

1 — Problema inicial 🐞

  • El JS validaba solo image/png, por lo que bloqueaba .jpg/.jpeg. ❌
  • Selectores inconsistentes (.imagenProducto vs #imagenProducto) => riesgo de undefined. ⚠️
  • El controlador PHP aceptaba únicamente PNG, hacía var_dump, usaba rutas relativas y agarraba excepciones equivocadas. 🧨
  • Tamaño máximo 2 MB; se solicitó ampliar a 5 MB. 📈
  • No había protocolo JSON consistente entre frontend y backend. 🧩

2 — Cambios en el frontend (JS) 📱

Qué se cambió (resumen)

  • Validación de tipos permitidos: image/png, image/jpeg, image/jpg. ✅
  • Detección y rechazo de HEIC (iPhone) con aviso o rechazo según preferencia. 🚫🧾
  • Límite de tamaño subido: 5 MB (maxSize = 5 * 1024 * 1024). 📏
  • Uso de FormData solamente si el archivo existe. 🎒
  • Unificación de selectores: usar id="imagenProducto" y mantener class para preview. 🧭
  • e.preventDefault() y bloqueo/rehabilitación del botón con complete. 🔒➡️🔓
  • dataType: "json" en AJAX con fallback a texto plano para compatibilidad. 🔁
  • Mensajes Toast claros y amigables. 🔔

Snippet — parte clave del JS (resumido)

// ... (código resumido; validar tipo, tamaño 5MB, añadir FormData solo si existe)
var maxSize = 5 * 1024 * 1024; // 5 MB
if (imagenProducto.size > maxSize) {
    Toast.fire({ icon: 'error', title: "La imagen pesa más de 5 MB." });
    $btn.removeAttr("disabled");
    return;
}

3 — Cambios en el backend (Controlador CodeIgniter 4) ⚙️

Objetivos del backend

  • Aceptar PNG y JPG/JPEG. 🟢
  • Validar tamaño (5 MB). 📦
  • Evitar var_dump en producción. 🚫
  • Usar FCPATH para mover archivos a public/images/products. 📁
  • Crear carpeta si no existe. 🧱
  • Devolver JSON con estado ok|error y message. 💬
  • Borrar la imagen anterior de forma segura al actualizar. 🧹
  • Manejar excepciones generales correctamente. 🔒

Snippet — método save() resumido

// Validación de archivo
$maxSize = 5 * 1024 * 1024;
$allowed = ['png','jpg','jpeg'];
if ($imagenProducto && $imagenProducto->isValid()) {
    $ext = strtolower($imagenProducto->getClientExtension() ?: '');
    if (!in_array($ext, $allowed)) {
        return $this->response->setStatusCode(415)->setJSON(['status'=>'error','message'=>lang('empresas.imageExtensionIncorrect')]);
    }
    if ($imagenProducto->getSize() > $maxSize) {
        return $this->response->setStatusCode(413)->setJSON(['status'=>'error','message'=>lang('empresas.imageTooLarge')]);
    }
    $datos['routeImage'] = $imagenProducto->getRandomName();
}

4 — Configuración del servidor y notas operativas 🖥️

  • PHP (php.ini): aumentar upload_max_filesize y post_max_size por encima de 5 MB (ej. 8M). 🔧
  • Nginx: client_max_body_size 8M;. ⚠️
  • Permisos: public/images/products debe ser escribible por el proceso web (ej. www-data). 🛡️
  • Seguridad: siempre validar MIME real y extensión en el servidor — no confiar en JS. 🔍
  • Backups: si las imágenes son críticas, considera mantener copia antes de unlink. 💾

5 — Pruebas que hicimos y checklist para QA 🧪✅

Pruebas realizadas:

  • Subida desde desktop: JPG, PNG. 💻
  • Subida desde móvil: cámara (Android/Chrome) y galería. 📱
  • Subida desde iPhone (HEIC) → detectado y rechazado con mensaje. 🍏🚫
  • Reemplazo de imagen de producto: antiguo archivo borrado y nuevo movido. 🔁
  • Validación de tamaños: >5MB rechazado, <5MB aceptado. ⚖️
  • Manejo de respuesta JSON en frontend y fallback a texto. 🔄

Checklist para QA / PR:

  • [ ] ✅ El input tiene id="imagenProducto" y accept="image/png, image/jpeg" (o accept="image/*" si se quiere cámara directa).
  • [ ] ✅ Validación en JS y servidor coincide (5 MB).
  • [ ] ✅ images/products existe y es escribible en staging/prod.
  • [ ] ✅ Mensajes Toast claros para cada caso (HEIC, tamaño, formato).
  • [ ] ✅ Al actualizar producto, la imagen anterior se borra sólo si corresponde.
  • [ ] ✅ Tests unitarios / integración pasan (si existen).
  • [ ] ✅ composer.lock no fue tocado por estos cambios (si aplica).

6 — Mensajes de commit / PR recomendados ✍️

Commit:
fix(products): accept jpeg/png, validate size 5MB, handle uploads safely

Descripción PR sugerida:

  • Frontend: validar JPG/JPEG + PNG, rechazar HEIC, aumentar tamaño a 5MB, enviar FormData solo si existe, unificar selectores y mejorar UX (disable button + toast).
  • Backend (CI4): aceptar jpg/png, validar tamaño, usar FCPATH para almacenamiento, crear carpeta si no existe, devolver JSON, borrar imagen anterior de forma segura, mejorar manejo de errores y logging.

Incluye checklist de QA y capturas de la subida desde móvil/desktop.


7 — Próximos pasos recomendados 🚀

  • ✂️ Optimizar imágenes: redimensionar/comprimir en cliente o servidor para ahorrar espacio y tiempo de subida.
  • ♻️ Soportar HEIC: implementar conversión con Imagick o servicio externo si quieres aceptar HEIC automáticamente.
  • 🧪 Automatizar pruebas: agregar tests para multipart upload y para el flujo de reemplazo/borrado de imágenes.
  • 🔁 Pipeline CI/CD: en staging hacer composer update si fuera necesario, probar y en producción usar composer install (lockfile).

8 — Conclusión 🎯

Estos cambios hacen la subida de imágenes más robusta, amigable para móviles y segura en el servidor. El frontend ahora maneja errores con mensajes claros y el backend devuelve JSON estructurado para un manejo predecible en la UI. Además, ampliamos el límite a 5 MB y arreglamos detalles clásicos como rutas relativas y selectores inconsistentes. ✅

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

Entrada fija

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

La versión lav1.5.1 introduce una de las mejoras más esperadas en el flujo de autenticación y gestión de usuarios: la capacidad de manejar de forma nativa la imagen de perfil, con validación robusta, soporte para valores NULL en base de datos y un avatar por defecto cuando no se encuentra la imagen.

Este release no solo mejora la experiencia visual y de usabilidad, sino que también fortalece la integración de datos del usuario dentro de las vistas del sistema. A continuación, presentamos en detalle todos los cambios, mejoras y la forma recomendada de actualizar tu proyecto.


✨ Principales Novedades

🔹 1. Imagen de perfil con validación

Ahora el sistema valida si el campo profile_image existe en la base de datos y contiene un valor válido.

  • Si el campo está vacío o en NULL, se muestra automáticamente un avatar genérico.
  • Si el archivo no existe en el servidor, el sistema también utiliza el avatar por defecto.

🔹 2. Avatar por defecto

El avatar por defecto se toma de la CDN oficial de AdminLTE:

https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png

🔹 3. Integración en el Header y Sidebar

La imagen de perfil ahora aparece en dos áreas clave:

  • Navbar (parte superior) junto al nombre de usuario.
  • Sidebar (menú lateral) dentro del panel de usuario.

🔹 4. Comando de actualización de esquema

Con esta versión se incluyen nuevos campos y tablas, por lo que añadimos el comando:

php spark boilerplate:update

Este comando sincroniza tu base de datos con los cambios de la versión actual.


📦 Cómo actualizar a lav1.5.1

1. Actualizar dependencias con Composer

Ejecuta en la raíz de tu proyecto:

composer update julio101290/boilerplate

Esto descargará la nueva versión y reemplazará los archivos necesarios.

2. Ejecutar la actualización de esquema

Después de actualizar el código, corre el comando:

php spark boilerplate:update

Este proceso migrará las tablas y añadirá los nuevos campos, entre ellos el de profile_image.

3. Limpiar cachés y asegurarte de que todo carga

php spark cache:clear
php spark config:clear

🛠 Cambios Técnicos Detallados

Validación en vistas

Ejemplo de uso en el header:

<a href="<?= base_url(route_to('user-profile')) ?>" class="nav-link d-flex align-items-center">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="avatar-img img-circle bg-gray mr-2 elevation-<?= config('Boilerplate')->theme['navbar']['user']['shadow'] ?>"
        alt="<?= user()->username ?>" height="32">
    <?= user()->username ?>
</a>

Ejemplo en el sidebar:

<div class="image">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="img-circle elevation-<?= config('Boilerplate')->theme['sidebar']['user']['shadow'] ?>"
        alt="User Image">
</div>

Cambios en la Base de Datos

  • Se añade el campo profile_image a la tabla de usuarios.
  • Este campo acepta NULL de manera nativa.
  • Si no se define, la vista renderiza automáticamente el avatar por defecto.

Compatibilidad

  • Compatible con PostgreSQL y MariaDB.
  • No requiere cambios manuales en tablas previas: el comando php spark boilerplate:update se encarga de todo.

🔒 Beneficios de Seguridad

  • No se exponen rutas inválidas de imágenes.
  • Se evita el error de “imagen rota”.
  • Se normalizan los valores NULL.
  • Mejora la experiencia del usuario manteniendo consistencia en toda la interfaz.

📊 Ejemplo Visual del Cambio

Antes (versión anterior):

  • Los usuarios sin foto aparecían con un ícono roto.
  • Los campos NULL no eran validados correctamente.

Ahora (lav1.5.1):

  • Todos los usuarios tienen avatar visible.
  • Integración estética y funcional en Navbar y Sidebar.

📝 Changelog resumido

  • ✅ Validación de profile_image en todas las vistas principales.
  • ✅ Avatar por defecto cuando el campo está vacío o NULL.
  • ✅ Compatibilidad con PostgreSQL y MariaDB.
  • ✅ Nuevo comando php spark boilerplate:update.
  • ✅ Correcciones menores en estilos de AdminLTE.

🚀 Guía Paso a Paso de Migración

  1. Respaldar tu proyecto actual.
  2. Ejecutar:
   composer update julio101290/boilerplate
  1. Correr la migración:
   php spark boilerplate:updatecommand
  1. Limpiar caché.
  2. Verificar que los usuarios aparecen con sus fotos de perfil o con el avatar por defecto.

📌 Notas Finales

Este release v1.5.1 marca un paso adelante en la personalización de Boilerplate.
Ahora cada usuario tiene una experiencia más consistente y profesional dentro de la aplicación.

👉 Si quieres revisar el código y los commits de esta versión:
🔗 Release en GitHub

🚀 Descubre Facturación Fácil con CI4JCPOX: Sistema Moderno en CodeIgniter 4.5

Entrada fija

¿Buscas un sistema de facturación rápido, seguro y flexible que puedas instalar en tu servidor Ubuntu con mínimo esfuerzo?

¡Te presento CI4JCPOX, una solución basada en CodeIgniter 4.5 que potencia tu negocio con funcionalidades completas y tecnología moderna!


🌟 ¿Por qué elegir CI4JCPOX?

  • Basado en CodeIgniter 4.5, el framework PHP ligero y rápido
  • Uso de MariaDB para bases de datos robustas y eficientes
  • Integración lista con Apache y PHP para un entorno LAMP completo
  • Código abierto y fácil de personalizar para tus necesidades
  • Instalación rápida gracias a un script automatizado para Ubuntu Server 24.04 en AWS EC2 o cualquier VPS Linux

⚙️ ¿Qué incluye este sistema?

  • Gestión completa de facturas y clientes
  • Interfaz web limpia y responsiva
  • Migraciones y seeders para inicializar la base de datos sin complicaciones
  • Configuración segura con usuario y base de datos dedicados
  • Preparado para crecer y adaptarse a tu negocio

🛠️ Cómo instalar CI4JCPOX en Ubuntu Server 24.04 (AWS EC2)

He preparado un script automático para que en pocos minutos tengas todo listo: LAMP, base de datos, configuración de CodeIgniter y Apache con VirtualHost.

Paso 1: Descarga el script de instalación

cd ~
curl -O https://raw.githubusercontent.com/julio101290/ci4jcposv2/main/instalar_ci4_facturacion.sh

Paso 2: Dale permisos de ejecución

chmod +x instalar_ci4_facturacion.sh

Paso 3: Ejecuta el script como root

sudo ./instalar_ci4_facturacion.sh

✅ ¿Qué hace este script por ti?

  • Actualiza y prepara tu servidor Ubuntu
  • Instala Apache, MariaDB y PHP con todas las extensiones necesarias
  • Crea la base de datos facturacion y un usuario seguro con permisos
  • Instala el proyecto CI4JCPOX usando Composer en /var/www/html/facturacion
  • Configura Apache para servir el proyecto con un VirtualHost dedicado
  • Ejecuta migraciones y seeders para inicializar la base de datos
  • Deja todo listo para que accedas a tu sistema por IP o dominio

🌐 Accede a tu sistema

Abre tu navegador y entra a:

http://TU_IP_PUBLICA/

¡Listo para comenzar a facturar!


🔒 Seguridad y permisos

El script también se encarga de ajustar permisos para que Apache pueda servir correctamente la aplicación sin problemas de acceso.


📂 Código y más información

Puedes revisar y descargar el script completo desde GitHub:

https://github.com/julio101290/ci4jcposv2/blob/main/instalar_ci4_facturacion.sh


¿Quieres ayuda o personalización?

No dudes en contactarme para soporte, mejoras o integraciones personalizadas. ¡Estoy aquí para ayudarte a llevar tu facturación al siguiente nivel!


¡Empieza hoy mismo con CI4JCPOX y transforma tu sistema de facturación!

Guía Completa: Instalar LAMPP con PostgreSQL y CodeIgniter 4 en Ubuntu 24.04 (EC2 AWS)

Entrada fija

Esta guía te muestra cómo dejar una instancia EC2 (Ubuntu 24.04) lista para usar CodeIgniter 4 con Apache, PostgreSQL y HTTPS.


✨ 1. Requisitos Previos

  • Una instancia EC2 Ubuntu 24.04 corriendo
  • Acceso SSH a la instancia (archivo .pem)
  • Un dominio apuntando a la IP de tu instancia (para usar HTTPS)
  • Puertos 22, 80 y 443 abiertos en el grupo de seguridad

⚙️ 2. Actualizar el sistema

sudo apt update && sudo apt upgrade -y

🔧 3. Instalar Apache, PHP y extensiones necesarias

sudo apt install apache2 php php-pgsql php-intl php-xml php-mbstring php-curl php-zip php-cli unzip git -y
sudo a2enmod rewrite

📃 4. Instalar PostgreSQL y configurar base de datos

sudo apt install postgresql postgresql-contrib -y

Crear base de datos y usuario:

sudo -u postgres psql

Dentro de psql:

CREATE DATABASE facturacion;
CREATE USER ci4user WITH PASSWORD 'ci4password';
GRANT ALL PRIVILEGES ON DATABASE facturacion TO ci4user;
\c facturacion
ALTER SCHEMA public OWNER TO ci4user;
GRANT USAGE, CREATE ON SCHEMA public TO ci4user;
\q

📁 5. Instalar Composer y CodeIgniter 4

cd /var/www/html
sudo composer create-project codeigniter4/appstarter facturacion
sudo chown -R www-data:www-data facturacion
sudo chmod -R 775 facturacion/writable

🚪 6. Configurar Apache Virtual Host

Edita o crea el archivo:

sudo nano /etc/apache2/sites-available/tusitio.com.conf

Contenido:

<VirtualHost *:80>
    ServerName tusitio.com
    DocumentRoot /var/www/html/facturacion/public

    <Directory /var/www/html/facturacion/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/facturacion_error.log
    CustomLog ${APACHE_LOG_DIR}/facturacion_access.log combined
</VirtualHost>

Activar sitio:

sudo a2dissite 000-default.conf
sudo a2ensite tusitio.com.conf
sudo systemctl reload apache2

🔒 7. Instalar Certbot para HTTPS

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d tusitio.com --non-interactive --agree-tos -m admin@tusitio.com --redirect

🔢 8. Configurar CodeIgniter 4 con PostgreSQL

Edita el archivo .env dentro de /var/www/html/facturacion/:

database.default.hostname = localhost
database.default.database = facturacion
database.default.username = ci4user
database.default.password = ci4password
database.default.DBDriver = Postgre
database.default.port = 5432

Asegúrate de descomentar las líneas (quitar # al inicio)


📆 9. Ejecutar migraciones de CodeIgniter

cd /var/www/html/facturacion
sudo php spark migrate

Si da error de permisos:

sudo chown -R www-data:www-data writable
sudo chmod -R 775 writable

🎉 Resultado Final

Ya puedes acceder a tu sitio en:

https://tusitio.com

Con CodeIgniter 4 funcionando sobre PostgreSQL, Apache y HTTPS en una instancia EC2 Ubuntu 24.04.


🚀 Extras (opcional)

  • Usa php spark serve para desarrollo local
  • Configura Git para control de versiones
  • Usa .htaccess para seguridad y redirecciones

¡Listo! Tienes una pila LAPP (Linux, Apache, PostgreSQL, PHP) totalmente funcional con CodeIgniter 4.

¡Descubre Linux Mint 22.1 “Xia”! Night Light y Rendimiento Potenciado.

Entrada fija

✨ Tu Escritorio, Más Hermoso Que Nunca

Prepárate para enamorarte de Cinnamon 6.4, el entorno de escritorio que se renueva con un tema por defecto espectacular: ¡diseño moderno, esquinas redondeadas y una sensación “flotante” que te encantará! Navegar por tu sistema nunca se vio tan bien.


 Descanso para tus Ojos con Night Light

¡Dile adiós a la fatiga visual! Con la nueva función Night Light, Linux Mint 22.1 ajusta automáticamente el color de tu pantalla para proteger tus ojos, especialmente durante la noche. ¡Tu vista te lo agradecerá! 


 Más Rápido y Eficiente “Bajo el Capó”

No solo es bonito, ¡también es potente! Gracias a la modernización de APT, la gestión de paquetes es ahora más rápida y estable, con traducciones impecables y un rendimiento que notarás. Además, Pipewire es el nuevo servidor de sonido por defecto, lo que significa un audio impecable y una mejor compatibilidad con tus apps favoritas.


 Pequeños Detalles, Gran Diferencia

  • Nemo ahora soporta miniaturas de archivos .ora.
  • Bulky te ayuda a limpiar los nombres de tus archivos.
  • Modos de energía para que tu sistema se adapte a ti.
  • ¡Y mucho más!

Basado en Ubuntu 24.04 LTS y con el Kernel 6.8, “Xia” es sinónimo de estabilidad y soporte a largo plazo hasta 2029.

¿Listo para transformar tu experiencia Linux? ¡Descarga ya Linux Mint 22.1 “Xia” y descubre un sistema operativo diseñado para deleitarte!


¡Corre la voz y comparte esta buena noticia! ¿Cuál es la característica que más te emociona de “Xia”?

¿Qué Base de Datos Elegir? Comparativa de MariaDB, PostgreSQL y SQL Server

Entrada fija
  • Si buscas una solución gratuita, potente, extensible y con una gran comunidad, ideal para una amplia variedad de aplicaciones (web, móviles, empresariales) y si no dependes fuertemente del ecosistema Microsoft: PostgreSQL es una excelente opción. Su robustez y características avanzadas lo hacen muy versátil.
  • Si necesitas una solución gratuita, con buen rendimiento y alta compatibilidad con MySQL, especialmente si ya tienes experiencia con MySQL o planeas una migración sencilla: MariaDB es una alternativa sólida.
  • Si tu infraestructura ya está fuertemente basada en productos Microsoft, necesitas una integración perfecta con ellos, un amplio conjunto de herramientas empresariales y soporte comercial robusto, y el presupuesto no es la principal limitante: SQL Server sería la opción más adecuada.

En resumen:

  • PostgreSQL: Versátil, potente, de código abierto, ideal para diversas aplicaciones.
  • MariaDB: Gratuita, buen rendimiento, compatible con MySQL.
  • SQL Server: Óptimo para entornos Microsoft, con amplias funcionalidades comerciales.

Para tomar la mejor decisión, te recomiendo considerar los siguientes factores específicos para tu situación en Los Mochis:

  • Requisitos de tu aplicación: ¿Qué tipo de datos manejarás? ¿Qué tipo de consultas realizarás? ¿Necesitas características específicas como geodatos?
  • Tamaño y escalabilidad esperada: ¿Cuánto crecerá tu base de datos y tu aplicación?
  • Experiencia de tu equipo: ¿Con qué base de datos están más familiarizados tus desarrolladores y administradores?
  • Presupuesto: ¿Puedes asumir los costos de licencia de SQL Server?
  • Infraestructura existente: ¿Qué sistemas operativos utilizas? ¿Necesitas una integración estrecha con otras herramientas?
  • Soporte local: ¿Hay experiencia y soporte técnico disponible en Los Mochis para alguna de estas bases de datos en particular?

Considerando que trabajarás con CodeIgniter 4, tanto MariaDB como PostgreSQL son excelentes opciones y muy populares en la comunidad de PHP y CodeIgniter. SQL Server también puede funcionar bien, pero podría tener algunas consideraciones adicionales.

MariaDB con CodeIgniter 4:

  • Ventajas:
    • Compatibilidad Directa: CodeIgniter 4 tiene un excelente soporte para MySQL, y dado que MariaDB es altamente compatible, la configuración y el uso serán muy sencillos.
    • Rendimiento: Puede ofrecer un buen rendimiento para aplicaciones web desarrolladas con CodeIgniter 4.
    • Facilidad de Uso: Muchos desarrolladores PHP están familiarizados con MySQL/MariaDB, lo que podría facilitar el desarrollo y la administración.
    • Código Abierto y Gratuito: Sin costos de licencia, lo cual es atractivo para muchos proyectos.
    • Comunidad: Amplia comunidad de usuarios de PHP y MySQL/MariaDB.
  • Desventajas:
    • Menos Características Avanzadas: Comparado con PostgreSQL, podría carecer de algunas características más avanzadas si tu aplicación en el futuro las necesitara (tipos de datos más complejos, extensiones como PostGIS, etc.).

PostgreSQL con CodeIgniter 4:

  • Ventajas:
    • Características Potentes: Ofrece características avanzadas que podrían ser útiles para aplicaciones más complejas (tipos de datos JSON, arrays, funciones avanzadas, etc.).
    • Integridad de Datos: Conocido por su robustez y cumplimiento de los estándares SQL, lo que puede contribuir a una mayor integridad de los datos.
    • Extensiones: La capacidad de extender su funcionalidad con extensiones como PostGIS para datos geoespaciales es una gran ventaja si tu aplicación lo requiere.
    • Rendimiento Sólido: Funciona muy bien con aplicaciones web y puede manejar grandes volúmenes de datos y consultas complejas de manera eficiente.
    • Comunidad: Una comunidad fuerte y activa dentro del mundo de PHP y PostgreSQL.
  • Desventajas:
    • Curva de Aprendizaje Ligeramente Mayor: Si no estás familiarizado con PostgreSQL, podría haber una pequeña curva de aprendizaje en comparación con MySQL/MariaDB.
    • Configuración Inicial: La configuración inicial podría tener algunos pasos ligeramente diferentes en comparación con MySQL/MariaDB.

SQL Server con CodeIgniter 4:

  • Ventajas:
    • Potencia y Funcionalidades: Ofrece un conjunto robusto de características empresariales.
    • Integración (si usas Windows Server): Si tu servidor corre en Windows Server, la integración podría ser más sencilla en algunos aspectos.
  • Desventajas:
    • Costo de Licencia: El costo de las licencias puede ser un factor limitante.
    • Configuración Adicional: La configuración para que CodeIgniter 4 se conecte a SQL Server podría requerir algunos pasos adicionales y la instalación de drivers específicos.
    • Menor Popularidad en el Mundo PHP: Aunque funciona, no es tan comúnmente utilizado con PHP como MariaDB o PostgreSQL, por lo que la comunidad y los ejemplos específicos para CodeIgniter 4 podrían ser menores.

¿Cuál es la mejor opción para CodeIgniter 4 ?

Considerando que se usara CodeIgniter 4, tanto MariaDB como PostgreSQL son excelentes opciones.

  • Si buscas simplicidad, familiaridad (si vienes de MySQL), buen rendimiento para aplicaciones web típicas y una configuración sencilla con CodeIgniter 4, MariaDB es una opción muy sólida y popular.
  • Si anticipas que tu aplicación podría necesitar características más avanzadas en el futuro, valoras la integridad de los datos, o quieres tener la flexibilidad de usar extensiones potentes como PostGIS, PostgreSQL es una opción fantástica y cada vez más popular en la comunidad PHP.

Mi recomendación general para CodeIgniter 4 sería:

  • Si no tienes necesidades muy específicas y buscas una solución probada y sencilla, elige MariaDB. Es muy probable que cumpla con todos tus requisitos para la mayoría de las aplicaciones web.
  • Si prevés que tu aplicación crecerá en complejidad o necesitará características más avanzadas, o si simplemente prefieres la potencia y las características de PostgreSQL, entonces esta sería una excelente elección. CodeIgniter 4 tiene un buen soporte para PostgreSQL.

SQL Server podría ser una buena opción si ya tienes una fuerte inversión en el ecosistema Microsoft y esa es la base de datos estándar en tu entorno. Sin embargo, para un proyecto nuevo con CodeIgniter 4, MariaDB o PostgreSQL suelen ser opciones más comunes y con una integración más directa en el mundo del desarrollo PHP.

En resumen, para CodeIgniter 4, te recomendaría inclinarte por MariaDB por su simplicidad y compatibilidad directa, o por PostgreSQL si anticipas necesidades más avanzadas en el futuro. Ambas son excelentes bases de datos y funcionarán muy bien con el framework. ¡La elección final dependerá de tus requisitos específicos!

CodeIgniter 4 Boilerplate Ubicaciones ( Carta Porte)

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate Ubicaciones ( Carta Porte)

Biblioteca a ubicaciones, requerida para carta portuaria (Carta Porte) CFDI 4.0

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables

Instalación

Ejecutar Comandos

composer require phpcfdi/sat-catalogos

composer require hermawan/codeigniter4-datatables
	
composer require julio101290/boilerplatelog

composer require julio101290/boilerplatecompanies

composer require julio101290/boilerplatestorages

composer require julio101290/boilerplatetypesmovement

composer require julio101290/boilerplatequotes

composer require julio101290/boilerplatecomprobanterd

composer require julio101290/boilerplatesells

composer require julio101290/boilerplatelocations

Ejecutar Comandos de migración de las tablas y sembrado de los datos

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

php spark boilerplatecomprobanterd:installcomprobanterd

php spark boilerplatequotes:installsells

php spark boilerplatelocations:installlocations

Ejemplo para crear el Menú

image

Listo

image

Usage

You can find how it works with the read code routes, controller and views etc. Finnally… Happy Coding!

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are very welcome.

License

This package is free software distributed under the terms of the MIT license.

CodeIgniter 4 Boilerplate Complemento De Pago

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate Complemento de Pago

Libreria para generar el complemento de pago de las facturas pagadas en PPD

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables
  • hermawan/boilerplatesells

Instalación

Ejecutar Comandos

composer require julio101290/boilerplatelog

composer require julio101290/boilerplatecompanies

composer require phpcfdi/sat-catalogos

composer require hermawan/codeigniter4-datatables

composer require julio101290/boilerplatestorages

composer require julio101290/boilerplatetypesmovement

composer require julio101290/boilerplatequotes

composer require julio101290/boilerplatecomprobanterd

composer require julio101290/boilerplatesells

composer require julio101290/boilerplatecomplementopago

Ejecutar comandos de migración y sembrado de base de datos

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

php spark boilerplatecomprobanterd:installcomprobanterd

php spark boilerplatequotes:installsells

php spark boilerplatecomplementopago:installcomplementopago

Creamos el Menu, Ejemplo

image

Listo ya podemos hacer complementos de pago

image
image

Usage

You can find how it works with the read code routes, controller and views etc. Finnally… Happy Coding!

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are very welcome.

License

This package is free software distributed under the terms of the MIT license.

CodeIgniter 4 Boilerplate Ventas

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Ventas

Biblioteca CodeIgniter4 Boilerplatesells para generar ventas con formato de impresión PDF, CFD4.0 Factura para enviar a los clientes por correo electrónico.

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables

Instalación

Ejecutar Comandos

composer require phpcfdi/sat-catalogos

composer require hermawan/codeigniter4-datatables

composer require julio101290/boilerplatelog

composer require julio101290/boilerplatecompanies

composer require julio101290/boilerplatestorages

composer require julio101290/boilerplatetypesmovement

composer require julio101290/boilerplatequotes

composer require julio101290/boilerplatecomprobanterd

composer require julio101290/boilerplatesells

Ejecutar comandos de migracion y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

php spark boilerplatecomprobanterd:installcomprobanterd

php spark boilerplatequotes:installsells

Creamos el menu, Ejemplo

image

Listo, vemos algunos ejemplo de funcionamiento

image
image
image
image
image
image
image

Usage

You can find how it works with the read code routes, controller and views etc. Finnally… Happy Coding!

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are very welcome.

License

This package is free software distributed under the terms of the MIT license.

CodeIgniter 4 Boilerplate Catalogo de Vehiculos

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Catalogo de Vehiculos

CodeIgniter4 Boilerplatevehicles CRUD MVC tipo captura Vehículo y vehículos para facturas y Carta Mexicana Porte y módulo de taller

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables

Instalación

Ejecutar Comandos

composer require phpcfdi/sat-catalogos

composer require hermawan/codeigniter4-datatables

composer require julio101290/boilerplatelog

composer require julio101290/boilerplatecompanies

composer require julio101290/boilerplatestorages

composer require julio101290/boilerplatetypesmovement

composer require julio101290/boilerplatevehicles

Ejecutar comandos para la migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatevehicles:installvehicles

Creamos el menú para el tipo de vehiculo, Ejemplo

image

Creamos el menú para el vehiculo, ejemplo

image

Listo

image
image

Usage

You can find how it works with the read code routes, controller and views etc. Finnally… Happy Coding!

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Contributions are very welcome.

License

This package is free software distributed under the terms of the MIT license.

Página 1 de 4

Creado con WordPress & Tema de Anders Norén