Herramientas Informaticas

Etiqueta: JCPOS Página 1 de 5

💎 Implementación de Respaldos en jcposUltimate: Ingeniería MVC con PHP 8.3

Entrada fija

💎 Implementación de Respaldos en jcposUltimate: Ingeniería MVC con PHP 8.3

Análisis exhaustivo del commit 3f4d283: Cómo construir un módulo de copias de seguridad robusto, seguro y nativo.


En el desarrollo de jcposUltimate, la eficiencia no es negociable. El reciente commit 3f4d283 introduce el módulo de Respaldos. A diferencia de las implementaciones tradicionales, aquí se ha optado por una arquitectura LGAC (Legacy Green Agile Code), utilizando 135 líneas de código puro en PHP 8.3 para manejar el ciclo completo de un backup SQL.

🏗️ El Triángulo MVC en 135 Líneas

Este commit no solo añade una función, añade una estructura. A pesar de ser un solo bloque lógico, el código se divide en tres capas fundamentales:

  • Modelo (Data Layer): Implementa la lógica de introspección de la base de datos, recorriendo tablas y generando sentencias INSERT y CREATE TABLE dinámicas.
  • Controlador (Logic Layer): Gestiona el flujo de ejecución, valida los tokens editarUuid y asegura que los recursos del servidor se utilicen de forma óptima.
  • Vista (Output Layer): No genera HTML, sino un Stream de Datos Binary-Safe hacia el navegador mediante headers HTTP especializados.

🛠️ Análisis Técnico: Los 10 Pilares de la Implementación

1. Resolución de Rutas de Nivel 2

Para garantizar que los respaldos se guarden fuera de la carpeta de controladores, se utiliza dirname(__DIR__). Esto permite que el sistema localice la carpeta /backups/ en la raíz del proyecto de forma dinámica y absoluta.

2. Gestión de Entradas con Operador de Fusión

PHP 8.3 brilla en la captura de datos: $uuid = $_POST["editarUuid"] ?? '';. Se eliminan los errores de “Undefined Index”, asegurando un flujo de ejecución limpio desde la primera línea.

3. Blindaje contra Path Traversal

La seguridad es prioritaria. El uso de basename() en el input del usuario actúa como un cortafuegos, impidiendo que caracteres maliciosos como ../ puedan escalar directorios en el servidor.

4. Motor de Generación SQL Nativo

El código recorre la estructura de la base de datos mediante ciclos optimizados. No se limita a copiar datos; construye el esquema necesario para que el archivo resultante sea 100% ejecutable en cualquier cliente SQL.

5. Inyección Dinámica de Nombres de Archivo

Utilizando interpolación de variables moderna, el sistema asigna nombres únicos basados en el UUID procesado, evitando colisiones de archivos en entornos multiusuario.

6. Control de Headers de Transferencia Binaria

Se implementan encabezados nativos para forzar la descarga: header("Content-Type: application/sql"); y header("Content-Disposition: attachment; ...");. Esto le indica al navegador que no debe intentar mostrar el código, sino guardarlo físicamente.

7. Optimización de Memoria (Output Buffering)

Al manejar archivos potencialmente grandes, el código asegura que el buffer de salida esté limpio antes de enviar el archivo, evitando que caracteres extra corrompan el script SQL.

8. Compatibilidad con Caché Inversa

Se incluyen directivas Pragma: no-cache y Expires: 0. Esto es vital en sistemas de gestión para asegurar que cada backup descargado sea la versión más reciente y no una copia temporal del servidor o el proxy.

9. Cierre de Proceso Determinista

El uso de exit; al finalizar el stream de datos es una práctica de ingeniería robusta que evita que cualquier lógica posterior del servidor se filtre en el archivo descargado.

10. Estándar de Codificación PHP 8.3

Todo el módulo respeta las nuevas convenciones de tipado y manejo de errores, lo que reduce la deuda técnica y facilita futuras auditorías de código.

📈 Impacto en el Rendimiento

Al evitar el uso de una librería de terceros o un plugin pesado, jcposUltimate logra:

MétricaResultado
Velocidad de GeneraciónInstantánea (Nativo)
Consumo de RAMBajo impacto (Lineal)
SeguridadGrado Empresarial

💡 Conclusión

La implementación del módulo de respaldos en el commit 3f4d283 es un ejemplo de cómo la simplicidad bien ejecutada supera a la complejidad innecesaria. En 135 líneas, jcposUltimate ahora cuenta con una herramienta de recuperación ante desastres potente, segura y extremadamente rápida.

¿Eres desarrollador? Explora el código completo en nuestro repositorio y únete a la evolución de los sistemas de gestión nativos.

Tags: #PHP83 #MVC #jcposUltimate #Backend #CyberSecurity #WebDev #OpenSource #SoftwareArchitecture #LGAC

¡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”?

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 CFDI Descarga Masiva

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate CFDI Descarga Masiva

Biblioteca para la Descarga Masiva de Facturas Electrónicas CFDI del SAT, solo requiere Certificado Fiel, Clave y Contraseña.

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables
  • phpcfdi/cfditopdf
  • phpcfdi/cfdi-to-json”
  • phpcfdi/xml-cancelacion

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/boilerplatecfdidescargamasiva

Ejecutar comando de migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

Creando el menu, Ejemplo

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 CFDI

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate CFDI

Biblioteca para la administración de facturas electrónicas mexicanas CFDI, impresión, carga, descarga, etc.

Requerimientos

  • PhpCfdi\SatCatalogos
  • julio101290/boilerplatelog
  • hermawan/codeigniter4-datatables
  • phpcfdi/cfditopdf
  • phpcfdi/cfdi-to-json”
  • phpcfdi/xml-cancelacion

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/boilerplatecfdi


Ejecutar comandos de migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

php spark boilerplatecfdi:installcfdi

Creando el ménu, Ejemplo grafico

image

Listo

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 Arqueo de Caja

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Arqueo de caja

CodeIgniter4 Boilerplate Arqueo de caja, este modulo servira para abrir y cerrar las cajas en una fecha determinada.

El funcionamiento es que al abrir la caja todas las ventas realizadas se ingresaran a ese arqueo, el cual va a generar un reporte de cuales ventas son a credito y cuales a contado.

Al registrar el arqueo de caja capturamos cuando hay en caja actualmente y cuanto hay en el reconteo de efectivo

Requerimientos

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

Instalación

Ejecutar los siguientes 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/boilerplatecashtonnage

Ejecutar los comandos para la migración de tablas y sembrado de datos

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

php spark boilerplatequotes:installquotes

php spark boilerplatecashtonnage:installcashtonnage

Creamos el menú, Como se ve en la imagen

image

Listo

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 Cotizaciones

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate Cotizaciones

Biblioteca CodeIgniter4 Boilerplatequotes para generar cotizaciones con formato de impresión PDF para enviar a los clientes

Requerimientos

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

Instalación

Ejecutar Comandos para integrar librerias al proyecto

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

Ejecutar comandos de migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

Creamos el menú, Ejemplo

image

Listo

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 proveedores

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Proveedores

CodeIgniter4 Boilerplatesuppliers CRUD MVC para captura de proveedores, con campos como empresa, nombre, apellido y campos para CDFI 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/boilerplatesuppliers

Ejecutar comandos de migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatesuppliers:installsuppliers

Creando el menú, Ejemplo

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 Tipos de Movimiento de inventario

Entrada fija

CodeIgniter 4 Boilerplate Tipos de inventario

CodeIgniter4 Boilerplatetypesmovement CRUD MVCfor the types of movement inventory, with fields as companye, description, type Input/Output, and it’s transfer

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

Ejecutar comandos de migración y sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

Crea el menu, ejemplo

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.

Página 1 de 5

Creado con WordPress & Tema de Anders Norén