Documentación


Índice

  • Migration : Cómo migrar de Temma 1.x a la versión 2
  • Installation : Descargar Temma e instalarlo para iniciar tu proyecto web
  • Actualización : Mantener Temma actualizado en tu proyecto web
  • Configuration : Todas las directivas de configuración del archivo temma.php
  • Bibliotecas externas : Cómo usar bibliotecas de funciones externas
  • Enrutamiento : El sistema de enrutamiento por defecto de Temma, y el enrutamiento avanzado
  • Log : Uso del sistema de log, gestión por niveles de criticidad
    • Gestores de log : Cómo crear tus propios gestores de log
    • Syslog : Para enviar tus logs a un servidor Syslog
    • Datadog : Para enviar tus logs al servicio Datadog
  • Controladores : Partes esenciales de tu aplicación web
  • Vistas : Plantillas Smarty o exportaciones JSON/CSV/RSS/iCal/INI
    • Smarty : Vista por defecto, basada en plantillas Smarty
    • PHP : Vista que usa plantillas en PHP puro
    • JSON : Exportación en JSON, con o sin validación de datos
    • CSV : Exportación en CSV
    • RSS : Exportación de feed RSS
    • INI : Exportación en formato INI
    • iCal : Exportación de calendario iCal
  • Objetos internos : Los objetos internos de Temma (Config, Request, Response, Session)
  • Inyección de dependencias : La columna vertebral de tus desarrollos de aplicación
  • Sessions : Extensión de las sesiones de usuario gestionadas por PHP
  • Fuentes de datos : Para gestionar el acceso a los datos de forma unificada
    • SQL : Acceso a bases de datos relacionales
    • Memcache : Acceso a servidores Memcached
    • Redis : Acceso a servidores Redis
    • File : Acceso al almacenamiento de archivos locales
    • S3 : Acceso al almacenamiento Amazon S3
    • Socket : Comunicación de red
    • ZeroMQ : Comunicación de red usando la biblioteca ZeroMQ
    • SQS : Acceso a las colas de mensajes Amazon SQS
    • Beanstalk : Acceso a servidores de cola de mensajes Beanstalkd
    • Smsmode : Para enviar SMS a teléfonos móviles
    • Slack : Para enviar notificaciones en Slack
    • Discord : Para enviar mensajes a Discord
    • Google Chat : Para enviar mensajes a Google Chat
    • Telegram : Para enviar mensajes a Telegram
    • Pushover : Para enviar notificaciones push a móviles
    • SMTP : Para enviar correos electrónicos a través de un relay SMTP
    • AI : Para consultar modelos de lenguaje (LLM)
    • OpenAI : Para consultar los modelos de lenguaje de OpenAI
  • Modelo : Cómo usar los DAO para acceder a bases de datos
  • Flujo de ejecución : Cómo gestionar el flujo de ejecución, entre los plugins y el controlador
  • Plugins : Cómo usar plugins, y crear los tuyos propios para modularizar tu código
  • Atributos : Cómo filtrar el acceso a los controladores y a las acciones
  • Tests : Para escribir pruebas de integración automatizadas.
  • Interfaz de línea de comandos : Para crear scripts ejecutables en línea de comandos, inicializados automáticamente por Temma
  • Eventos enviados por el servidor : Para enviar eventos en tiempo real del servidor al cliente
  • Procesamiento asíncrono : Para realizar procesamientos por separado de la petición principal
  • Skills de IA : Skills para agentes de codificación con IA
  • Seguridad : Buenas prácticas de seguridad en una aplicación Temma
  • Autenticación de usuarios : Cómo gestionar la autenticación de los usuarios
  • Validación de datos : Cómo validar los datos entrantes y salientes
  • Helpers : Objetos ofrecidos por Temma para ayudarte en diversas circunstancias
    • Scripts en línea de comandos
      • Temma : Para gestionar el framework (versión, actualización, servidor de desarrollo).
      • Cache : Para vaciar la caché.
      • User : Para gestionar los usuarios.
    • Controlador + plugin
      • Auth : Controlador y plugin usados para gestionar la autenticación de los usuarios
    • Plugins
      • Api : Para gestionar los accesos a una API
      • Cache : Para almacenar en caché las páginas HTML generadas
      • Debug : Para facilitar la depuración de proyectos Temma
      • KebabCaseUrl : Para gestionar las URLs en formato kebab case
      • Idioma : Gestión de la localización multilingüe
    • Atributos
      • Auth : Para restringir el acceso a los usuarios autenticados
      • Check : Para validar los datos entrantes (parámetros GET/POST, payload, archivos).
      • View : Para gestionar la vista de los controladores y las acciones
      • Template : Para definir la ruta al archivo de template
      • Method : Para gestionar los métodos HTTP autorizados
      • Referer : Para filtrar el acceso por HTTP REFERER
      • Redirect : Para redirigir las peticiones automáticamente
    • Plugins Smarty
      • dump : Modificador y etiqueta de bloque para volcar datos
      • urlize : Modificador que transforma un texto en URL
      • filenamize : Modificador que transforma un texto en nombre de archivo
      • nbsp : Modificador que transforma espacios en espacios no separables
      • hash : Modificador que genera valores de hash
    • Objetos utilitarios
      • ANSI : Para dar formato a los textos escritos en la salida estándar
      • BaseConvert : Para hacer conversiones de bases numéricas
      • DataFilter : Para filtrar y validar datos
      • Dumper : Para volcar datos
      • Email : Para enviar correos electrónicos
      • ExtendedArray : Operaciones adicionales sobre arrays
      • File : Operaciones adicionales sobre archivos
      • HTMLCleaner : Para limpiar un flujo HTML proveniente de un editor WYSIWYG
      • Serializer : Para serializar/deserializar datos
      • Lock : Para bloquear el acceso a un archivo, o la ejecución del script PHP actual
      • Misc : Funcionalidades diversas.
      • Registry : Para almacenar correctamente variables globales
      • Smarty : Para procesar templates Smarty fuera de la vista
      • Term : Gestión de terminales (TTY)
      • Text : Diferentes tratamientos sobre cadenas de caracteres
      • Timer : Para gestionar cronómetros

Componentes

Migración

Las principales diferencias entre Temma 1.x y la versión 2

Instalación

La instalación de Temma es muy sencilla

Configuración

La configuración de Temma se basa en un archivo PHP y, opcionalmente, en variables de entorno

Bibliotecas externas

Integra fácilmente bibliotecas externas en tus proyectos

Enrutamiento

El sistema de enrutamiento de Temma es intencionadamente muy simple por defecto, pero se puede extender

Log

La escritura en los archivos de log se hace de forma simple y expresiva, facilitando la depuración

Controladores

Los controladores de Temma son fáciles de crear y manipular, y pueden extenderse fácilmente

Vistas

Plantillas Smarty por defecto, pero también exportaciones JSON, CSV, RSS, iCal, INI

Inyección de dependencias

Este componente es la columna vertebral de tus desarrollos de aplicación

Sesiones

Registra datos relacionados con una sesión de usuario, para pasar a un funcionamiento con estado

Fuentes de datos

Acceso unificado a diferentes fuentes de datos (SQL, Redis, Memcache, archivos, S3, SQS, Beanstalkd…)

Modelo

El acceso a las bases de datos se hace usando el patrón DAO, con o sin caché

Flujo de ejecución

Temma usa un sistema de plugins fácil de manejar para gestionar la ejecución de las peticiones

Plugins

Modifica el comportamiento de tu aplicación usando plugins pre- o post-controlador

Atributos

Protege o modifica el acceso a los controladores y a las acciones usando atributos PHP

Pruebas

Escribe scripts de prueba automatizados

Interfaz de línea de comandos

Ejecuta fácilmente scripts en línea de comandos, inicializados por Temma

Eventos enviados por el servidor

Para enviar eventos en tiempo real del servidor al cliente

Seguridad

Las buenas prácticas para proteger tus aplicaciones Temma

Autenticación de usuarios

Configura una autenticación sin contraseña y un control de acceso basado en roles

Validación de datos

Valida los datos entrantes y salientes usando contratos

Inteligencia artificial

Consulta modelos de lenguaje (LLMs) de diferentes proveedores a través de una interfaz única

Helpers

Temma ofrece varios objetos para facilitar diversos procesamientos