Herramientas Informaticas

Categoría: curso php Página 1 de 4

🔧 Arquitectura híbrida con Composer + Git: desarrollo profesional de módulos en CodeIgniter 4

Entrada fija

En el desarrollo moderno de aplicaciones PHP con CodeIgniter 4, uno de los mayores retos es mantener un flujo de trabajo eficiente entre desarrollo local, control de versiones y gestión de dependencias.

Este artículo explica una arquitectura híbrida usando Composer + Git + symlinks que permite trabajar módulos de forma profesional sin depender del directorio vendor.


🧠 El problema clásico

Cuando trabajamos con módulos reutilizables (inventarios, CFDI, pagos, etc.), normalmente terminamos instalando todo en vendor/, lo que genera problemas:

  • No se puede editar código fácilmente
  • Debug complicado
  • Cambios se pierden con composer update
  • Duplicación de código
  • Dificultad para mantener múltiples proyectos

💡 La solución: arquitectura híbrida

La solución moderna combina tres herramientas:

  • Composer como gestor de dependencias
  • Git como control de versiones
  • Symlinks para desarrollo en vivo

Estructura típica:

~/fuentes/
   ci4-project/
   boilerplateInventory/
   boilerplateProducts/

⚙️ Configuración en Composer

En el composer.json del proyecto principal:

"repositories": [
  {
    "type": "path",
    "url": "../boilerplateInventory",
    "options": {
      "symlink": true
    }
  },
  {
    "type": "vcs",
    "url": "https://github.com/julio101290/boilerplateInventory"
  }
]

📁 Path repository (desarrollo local)

Este tipo de repositorio indica a Composer que use una carpeta local en lugar de descargar el paquete.

Beneficios:

  • Cambios en tiempo real
  • Debug directo
  • No depende de vendor

🌐 VCS repository (GitHub)

Sirve como respaldo cuando el path no existe o en servidores de producción.


🔥 El problema de versiones

Muchos módulos requieren:

^1.0.0

Pero en desarrollo usamos:

dev-main

Esto genera conflictos.


🛠️ Solución: alias de versión

La solución correcta es:

"julio101290/boilerplateinventory": "dev-main as 1.2.6"

Esto le dice a Composer que trate el código local como versión estable.


⚡ Resultado del sistema

  • ✔ Desarrollo en vivo
  • ✔ Debug funcional
  • ✔ Compatibilidad con dependencias
  • ✔ Sin tocar vendor
  • ✔ Respaldo en GitHub

🧪 Flujo de trabajo real

cd ~/fuentes/boilerplateInventory
git add .
git commit -m "cambios"
git push

Los cambios se reflejan automáticamente en el proyecto principal.


⚠️ Buenas prácticas

  • Usar nombres consistentes en minúsculas
  • No trabajar dentro de vendor
  • Versionar módulos con tags
git tag v1.2.6
git push origin v1.2.6

🚀 Conclusión

Esta arquitectura permite construir sistemas modulares profesionales con:

  • Desarrollo rápido
  • Debug en vivo
  • Control de versiones limpio
  • Escalabilidad real

Es una forma moderna de trabajar con Composer sin depender de vendor como entorno de desarrollo.

Boilerplate de Órdenes de Mantenimiento para CodeIgniter 4

Entrada fija
Versión Estable
Descargas Totales
Versión Inestable
Licencia

Boilerplate Mantenimiento

Boilerplate de Órdenes de Mantenimiento para CodeIgniter 4

Módulo de Gestión de Órdenes de Mantenimiento

Un módulo profesional y escalable para la gestión de órdenes de mantenimiento, desarrollado para CodeIgniter 4.

Este boilerplate está diseñado para:

  • Departamentos de TI
  • Talleres automotrices
  • Mantenimiento de equipos industriales
  • Centros de reparación en general

Características

  • Arquitectura modular (fácil integración)
  • Gestión completa de órdenes de mantenimiento
  • Catálogo de departamentos
  • Gestión de empleados
  • Asignación de activos por empleado
  • Dashboard con órdenes pendientes
  • Estructura escalable lista para integrarse en ERP

Requisitos

  • PHP 8.1 o superior
  • CodeIgniter 4
  • phpcfdi/sat-catalogos
  • julio101290/boilerplatelog
  • julio101290/boilerplateinventory

Instalación

Instalar vía Composer

composer require julio101290/boilerplatemaintenance

Ejecutar migraciones y seeders

php spark boilerplatemaintenance:installmaintenance

Capturas del Módulo

Dashboard – Órdenes Pendientes

Catálogo de Departamentos

Órdenes de Mantenimiento


Ejemplo de Integración en el Menú

Menú Principal de Mantenimiento

Dashboard

Departamentos

Empleados

Productos por Empleado

Órdenes de Mantenimiento


Sistema Listo


Uso

Revisa las rutas, controladores, modelos, vistas, migraciones y seeders para comprender el funcionamiento interno y adaptarlo a tu sistema.


Historial de Cambios

Consulta el archivo CHANGELOG para conocer las actualizaciones recientes.


Contribuciones

Las contribuciones son bienvenidas:

  1. Haz un fork del repositorio
  2. Crea una rama de mejora
  3. Envía un pull request

Licencia

Este paquete es software libre distribuido bajo la Licencia MIT.


Autor

Desarrollado y mantenido por Julio Leyva
¡Feliz programación! 🚀

🚀 Nueva Funcionalidad: Asignación de Productos Internos a Empleados con Control ON/OFF (CodeIgniter 4 + DataTables)

Entrada fija

Hoy quiero compartir una mejora importante implementada en uno de mis módulos de mantenimiento interno: la asignación dinámica de productos internos a empleados, completamente integrada con CodeIgniter 4, DataTables Server-Side y una arquitectura escalable basada en controladores limpios y métodos reutilizables.

Este cambio simplifica el control operativo dentro del sistema y habilita una administración más clara y eficiente entre productos y personal. Aquí te cuento cómo quedó y por qué la solución es tan efectiva.


🎯 ¿Cuál era el objetivo?

Empresas que manejan productos internos suelen tener un problema común:
¿Qué empleados tienen asignado qué producto?

Antes la gestión se hacía de forma manual, lo cual era lento, propenso a errores y nada práctico.

La meta era:

  • ✔ Mostrar todos los empleados
  • ✔ Señalar si tienen o no asignado un producto (ON/OFF)
  • ✔ Permitir activar o desactivar la asignación con un clic
  • ✔ Mantener todo sincronizado con DataTables server-side
  • ✔ Evitar duplicados y mantener la base limpia

🧩 La solución implementada

1. Nueva tabla pivote: productsEmployes

Registra las asignaciones entre productos y empleados.

id | idProduct | idEmploye | created_at | updated_at | deleted_at

Una tabla limpia, auditada y optimizada para relaciones N:N.


2. Endpoint server-side para DataTables

El método ctrDatatableProductsEmployes() hace lo siguiente:

  • 🔹 Recibe el idProduct
  • 🔹 Obtiene automáticamente el idEmpresa del producto
  • 🔹 Lista empleados que pertenecen a esa empresa
  • 🔹 Calcula si cada empleado tiene asignado el producto (ON/OFF)
  • 🔹 Soporta búsqueda, orden y paginación
  • 🔹 Devuelve JSON compatible con DataTables

💡 Resultado: un DataTable rápido, preciso y escalable.


3. Endpoint para alternar asignación ON/OFF

Con el método toggleEmployeProduct() se controla la asignación:

  • ✔ Si la asignación no existe → se inserta
  • ✔ Si ya existe → se elimina
  • ✔ Respuesta JSON simple y rápida

Todo esto sin recargar página, con una UX fluida y sin duplicados.


4. Interfaz visual con botones ON/OFF

En la vista se implementaron botones:

  • 🟢 ON en verde
  • 🔴 OFF en rojo

Cada clic es enviado por AJAX y la tabla se actualiza automáticamente.


🔥 ¿Qué beneficios aporta?

  • ✔ Velocidad operativa: Asignaciones con un solo clic.
  • ✔ Cero duplicados: El sistema valida antes de insertar o eliminar.
  • ✔ Escalable: Lista para ampliarse sin cambiar la base.
  • ✔ UX intuitiva: Interfaz clara y visual.
  • ✔ Integración CI4: Arquitectura limpia y mantenible.

🌟 Conclusión

Este módulo transforma la manera de gestionar productos internos en las empresas. Lo más importante: queda construido sobre una arquitectura clara, modular y fácil de extender, ideal para cualquier sistema administrativo o ERP desarrollado en PHP/CodeIgniter.

Si deseas ver el código completo, la arquitectura o adaptarlo a tu proyecto, puedo ayudarte a integrarlo o extenderlo.

CodeIgniter 4 Boilerplate CFDI Series Electrónicas

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

image

CodeIgniter 4 Boilerplate CFDI Series Electrónicas

Biblioteca para la administración de series electrónicas CRUD CFDI para facturas, notas de crédito, pagos etc.

Requerimientos

  • 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/boilerplatecfdielectronicseries

Ejecutar comandos para el sembrado y migración de las tablas

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatecfdielectronicseries:installcfdielectronicseries

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

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 Inventory

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Inventory

CodeIgniter4 Boilerplateinventory Create entries, exits and inventory transfer

Requirements

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

Installation

Run commands

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

Run command for migration and seeder

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatestorages:installstorages

php spark boilerplatetypesmovement:installtypesmovement

boilerplateinventory:installinventory

Make the Menu, Example

image
image

Ready

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.

Guía de Instalación de Boilerplate Productos en CodeIgniter 4

Entrada fija
Latest Stable Version
Total Downloads
Latest Unstable Version
License

   

CodeIgniter 4 Boilerplate Catalogo de Productos CFDI V4.0

CodeIgniter4 Boilerplateproducts CRUD MVC contiene categoría de captura y producto CRUD por empresa, contiene nombre, inventario de administrador, facturas de campos SAT

Requerimientos

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

Intalación

Ejecutar Comandos

composer require phpcfdi/sat-catalogos

composer require hermawan/codeigniter4-datatables

composer require julio101290/boilerplatelog

composer require julio101290/boilerplatecompanies

composer require julio101290/boilerplatebranchoffice

composer require julio101290/boilerplateproducts

Ejecutar Comandos de Migración y Sembrado

php spark boilerplatecompanies:installcompaniescrud

php spark boilerplatelog:installlog

php spark boilerplatebranchoffice:installbranchoffice

php spark boilerplateproducts:installproducts

BaseController.php Config

Agrega SAT Catalogos Factory y usa variables globales desde la conexión DNS con SQLite

como se ve en la parte inferior

 <?php

namespace App\Controllers;

use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

//ADD
use PhpCfdi\SatCatalogos\Factory;

/**
 * Class BaseController
 *
 * BaseController provides a convenient place for loading components
 * and performing functions that are needed by all your controllers.
 * Extend this class in any new controllers:
 *     class Home extends BaseController
 *
 * For security be sure to declare any new methods as protected or private.
 */
abstract class BaseController extends Controller
{
    /**
     * Instance of the main Request object.
     *
     * @var CLIRequest|IncomingRequest
     */
    protected $request;

    /**
     * An array of helpers to be loaded automatically upon
     * class instantiation. These helpers will be available
     * to all other controllers that extend BaseController.
     *
     * @var array
     */
    protected $helpers = [];
    public $catalogosSAT;
    public $unidadesSAT;
    /**
     * Be sure to declare properties for any property fetch you initialized.
     * The creation of dynamic property is deprecated in PHP 8.2.
     */
    // protected $session;

    /**
     * Constructor.
     */
    public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);

        // Preload any models, libraries, etc, here.

        // E.g.: $this->session = \Config\Services::session();
        
        date_default_timezone_set("America/Mazatlan");

	//ADD
        $dsn = "sqlite:".ROOTPATH."writable/database/catalogossat.db";
        $factory = new Factory();
        $satCatalogos = $factory->catalogosFromDsn($dsn);
        $this->catalogosSAT = $satCatalogos;
        
       
       
    }
}

Crear carpeta y descargar Catálogos SAT de Base de Datos

Crear el menú de categorias

image

Crear el menú de Productos

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.

Instalación y Uso de Boilerplate Settings en CodeIgniter 4

Entrada fija

CodeIgniter 4 Boilerplate Settings

Esta biblioteca es una extensión para configuraciones globales de plantilla Boilerplate. Puede guardar el nombre de la compañía, el número de teléfono, el correo electrónico y cambiar el idioma en toda la aplicación CodeIgniter 4.

Instalación

Ejecutar comando

composer require julio101290/boilerplatesettings

Ejecutar el comando para la migración y sembrado

php spark boilerplatesettings:installsettings

Creamos el menu

image

Listo al final queda asi

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