Skip to main content

15. Apéndices

15.1. Glosario de términos y conceptos

A

  • API Layer: Capa de abstracción que contiene los controladores, servicios y DTOs que conforman los endpoints de la API.
  • Artesano: Herramienta de línea de comandos similar a Artisan de Laravel, utilizada para generar código y realizar tareas administrativas.
  • AuthMiddleware: Middleware encargado de verificar la autenticación de usuarios en las peticiones.

B

  • BaseModel: Clase abstracta que proporciona la funcionalidad básica para todos los modelos del sistema.
  • BaseModelPool: Implementación de BaseModel para trabajar con modelos simples del sistema Quartup.
  • BaseModelTree: Implementación de BaseModel para trabajar con modelos relacionales complejos del sistema Quartup.

C

  • Config: Sistema de acceso a configuraciones mediante archivos PHP organizados por función.
  • Controller: Componente responsable de recibir peticiones HTTP y devolver respuestas apropiadas.
  • CoreQuartup: Clase que encapsula la comunicación con el sistema legacy de Quartup.

D

  • Domain: Concepto que representa un área funcional del negocio (ej. Products, Carts, etc.).
  • DomainController: Controlador base para implementar el patrón de Controlador de Dominio.
  • DomainService: Servicio base para implementar el patrón de Servicio de Dominio.
  • DTO (Data Transfer Object): Objeto utilizado para transferir datos entre subsistemas, transformando datos entre el formato de la API y el formato interno.

E

  • ENVIRONMENT: Constante global que define el entorno actual de ejecución (DEV o PROD).

F

  • Filters: Sistema de filtrado mediante JSON que permite crear consultas complejas a la base de datos.

I

  • Infrastructures: Capa que contiene la implementación de acceso a datos y la comunicación con sistemas externos.
  • InterfaceReqDTO: Interfaz para los DTOs de entrada (request).
  • InterfaceResDTO: Interfaz para los DTOs de salida (response).

L

  • Legacy: Término que se refiere a sistemas existentes con los que el framework debe interactuar.
  • Log: Sistema de registro de actividades, errores y transacciones.

M

  • Mapper: Componente que traduce entre el formato de datos de la API y el formato interno.
  • Middleware: Software que actúa como intermediario entre diferentes componentes del sistema.
  • Module: Agrupación de dominios relacionados que forman una unidad funcional mayor.

P

  • PPos: Módulo del sistema legacy correspondiente a punto de venta.
  • PMaes: Módulo del sistema legacy correspondiente a maestros de datos.
  • Permut: Módulo específico de la API para ciertas funcionalidades.

Q

  • QueryBuilder: Sistema para construir consultas SQL de manera dinámica y segura.
  • QuApp: Clase principal que gestiona el estado global de la aplicación.
  • QuContainer: Implementación del patrón de contenedor de inversión de control (IoC).
  • QuErrorsToException: Sistema para convertir errores PHP en excepciones manejables.
  • QuKernel: Núcleo del framework, responsable de coordinar el ciclo de vida de las peticiones.
  • QuRouter: Sistema de enrutamiento que conecta URLs con controladores.

R

  • Repository: Componente que encapsula la lógica de acceso a datos para un modelo específico.
  • ReqDTO: Implementación concreta de DTO para procesar datos de entrada.
  • ResDTO: Implementación concreta de DTO para formatear datos de salida.
  • Router: Sistema que determina qué controlador y método deben manejar una petición HTTP.
  • Request: Objeto que encapsula la solicitud HTTP entrante, basado en Symfony HttpFoundation.
  • Response: Objeto que encapsula la respuesta HTTP saliente, basado en Symfony HttpFoundation.

S

  • Service: Componente que contiene la lógica de negocio principal de un dominio.
  • SwitchUtf8Latin1: Utilidad para manejar la conversión entre codificaciones de caracteres.

T

  • TPV: Módulo específico para Terminal Punto de Venta.
  • Transaction: Registro detallado de una operación realizada a través de la API.
  • TransactionMiddleware: Middleware que gestiona el registro de transacciones.

15.2. Dependencias y bibliotecas de terceros

El framework utiliza un conjunto mínimo de dependencias externas para proporcionar funcionalidades específicas:

Dependencias principales

  1. symfony/console (v4.4.49)

    • Utilizado para implementar el sistema de comandos "Artesano".
    • Proporciona la infraestructura para crear comandos CLI como CreateDomainCommand y CreateLegacyInfraestructureCommand.
    • Código relacionado:
      use Symfony\Component\Console\Command\Command;
      use Symfony\Component\Console\Input\InputArgument;
      use Symfony\Component\Console\Input\InputInterface;
      use Symfony\Component\Console\Output\OutputInterface;
  2. symfony/http-foundation

    • Proporciona las clases Request y Response que el framework extiende.
    • Implementa funcionalidades HTTP de bajo nivel para manejo de peticiones y respuestas.
    • Código relacionado:
      use Symfony\Component\HttpFoundation\Request;
      use Symfony\Component\HttpFoundation\Response;
  3. JWT

    • Biblioteca para manejo de JSON Web Tokens.
    • Utilizada para la implementación de autenticación basada en tokens.
    • Código relacionado:
      $token = \JWT::encode($payload, $privateKey, 'RS256');
      $decoded = \JWT::decode($token, $clavePublica, $ar);

Dependencias de sistema legacy

  1. QnoSession

    • Biblioteca del sistema Quartup para manejo de sesiones.
    • Utilizada en la inicialización:
      $arrayQuartup_ini_php = (new QnoSession)->getQuartupIni();
  2. QU_Basic

    • Biblioteca principal del sistema Quartup.
    • Código relacionado:
      use QU_Basic as Basic;
  3. QU_TablePool

    • Biblioteca del sistema Quartup para manejo de tablas.
    • Código relacionado:
      use QU_TablePool as Pool;
  4. QU_Sql

    • Biblioteca del sistema Quartup para operaciones SQL.
    • Código relacionado:
      use QU_Sql;
  5. QtableTree

    • Biblioteca del sistema Quartup para trabajar con estructuras de datos relacionales.
    • Código relacionado:
      use QtableTree;
      class QuTree extends QtableTree { ... }

Extensiones PHP requeridas

El framework hace uso de varias extensiones estándar de PHP:

  1. JSON

    • Para codificación y decodificación de datos en formato JSON.
    • Usado extensivamente en los filtros, respuestas y configuración.
  2. PDO

    • Utilizada para operaciones de base de datos, particularmente en el middleware de rate limiting.
  3. MBString

    • Utilizada para manipulación de strings con soporte para caracteres multibyte.
    • Código relacionado:
      function_exists('mb_strlen')
      mb_strlen($value)
  4. OpenSSL

    • Utilizada indirectamente por JWT para operaciones criptográficas con claves públicas/privadas.
    • Los archivos de claves se almacenan en /keys/.
  5. Session

    • Utilizada para manejo de sesiones de PHP.
    • Configuración específica:
      ini_set('session.use_cookies', '0');

El framework mantiene un enfoque minimalista en cuanto a dependencias externas, aprovechando al máximo las capacidades nativas de PHP y reutilizando componentes del sistema legacy Quartup cuando es apropiado.