Instalación
1Requisitos previos
Para usar Temma, necesitas un alojamiento web que utilice el intérprete PHP en su versión 8.3 o superior.
Temma puede usar todas las bases de datos compatibles con la extensión PDO, así como la base de datos NoSQL Redis, y el servidor de caché Memcached.
2Instalación con un agente de IA
Es el camino más corto. Si trabajas con un agente de programación (Claude Code, OpenAI Codex, GitHub Copilot…), dale esta frase:
Crea un sitio web usando Temma (temma.net/go) |
El agente lee el fichero llms-install.md, una guía de instalación ejecutable que le indica cómo comprobar los requisitos, crear el proyecto, configurar la base de datos, poner en marcha el servidor web y comprobar que la página de inicio responde. Todo lo que describen las secciones siguientes se hace, por tanto, en tu lugar.
Consulta la página de skills de IA para ver en detalle qué hace esta guía y cómo continuar el trabajo con un agente.
3Instalación con Composer
Si tienes el gestor de dependencias Composer instalado en tu equipo, puedes usarlo para crear un proyecto basado en Temma.
Para crear un proyecto de sitio web:
$ composer create-project digicreon/temma-project-web mi_sitio |
Para crear un proyecto de API:
$ composer create-project digicreon/temma-project-api mi_api |
La diferencia:
- Un proyecto web devuelve principalmente páginas HTML, y por eso incluye el motor de plantillas Smarty.
- Una API devuelve, por defecto, flujos JSON y gestiona su autenticación mediante pares de claves pública/privada. Por eso no incluye Smarty, y activa el plugin de API.
4Instalación sin Composer
Si no tienes Composer instalado en tu equipo, o no quieres usarlo, Temma ofrece un script de instalación fácil de usar. Incluso puedes simplemente clonar un repositorio de código Git.
4.1Versión estable
Para crear tu proyecto a partir de la última versión estable de Temma:
$ curl -Ls https://temma.net/release | sh - |
O, en forma abreviada:
$ curl -Ls temma.net/r | sh - |
El script te pedirá el nombre del directorio de destino que se va a crear. El nombre por defecto es temma_project.
Si lo prefieres, puedes extraer el archivo tú mismo.
La última versión estable de Temma es la 2.22.0.
$ wget https://github.com/Digicreon/Temma/archive/refs/tags/2.22.0.tar.gz $ tar xzf 2.22.0.tar.gz $ mv Temma-2.22.0 mi_proyecto $ chmod 777 mi_proyecto/log mi_proyecto/tmp
4.2Última versión de las fuentes
Puedes descargar las versiones más recientes de las fuentes de Temma. Estas fuentes están en fase de pruebas (por eso todavía no forman parte de una versión estable) y pueden contener errores.
Una vez más, se proporciona un script de instalación:
$ curl -Ls https://temma.net/release/latest | sh - |
O, en forma abreviada:
$ curl -Ls temma.net/r/l | sh - |
Una vez más, el script te pedirá el nombre del directorio de destino que se va a crear. El nombre por defecto es temma_project.
Si lo prefieres, puedes extraer el archivo tú mismo:
$ wget https://github.com/Digicreon/Temma/archive/main.tar.gz $ tar xzf main.tar.gz $ mv Temma-main mi_proyecto $ chmod 777 mi_proyecto/log mi_proyecto/tmp
Incluso puedes clonar directamente el repositorio git:
$ git clone git@github.com:Digicreon/Temma.git mi_proyecto $ chmod 777 mi_proyecto/log mi_proyecto/tmp $ rm -rf mi_proyecto/.git
4.3Instalar Smarty
Si usas Temma para crear una API sin generación de páginas HTML, no necesitarás el motor de plantillas Smarty. En caso contrario, Temma funciona igual de bien con Smarty 4 o Smarty 5. Smarty 4 es compatible con PHP 7.1 a 8.4, y Smarty 5 con PHP 7.2 a 8.5. Como Temma requiere PHP 8.3 o superior, ambas versiones de Smarty son adecuadas; solo necesitas usar Smarty 5 si estás ejecutando PHP 8.5.
Ten en cuenta que la versión 5 de Smarty introduce cambios que no son retrocompatibles.
Ten en cuenta que se recomienda encarecidamente usar la versión 5.4.0 (o superior) de Smarty. Temma activa la opción de auto-escape para las variables, lo que elimina la necesidad de usar el modificador escape. Sin embargo, las versiones de Smarty anteriores a la 5.4.0 no ofrecen el modificador raw, que permite cancelar el auto-escape cuando sea necesario. Aun así, es posible desactivar el auto-escape por defecto.
Puedes instalar Smarty de dos formas diferentes: usando Composer, o descargando el archivo manualmente.
Para instalar la última versión estable de Smarty con Composer, escribe este comando desde la raíz del proyecto (más información en la documentación):
$ composer require smarty/smarty |
Para instalar Smarty manualmente, descarga el archivo (formato ZIP o TAR.GZ) de la versión deseada. Al descomprimir el archivo, verás un subdirectorio libs/ (Smarty 4) o src/ (Smarty 5). Renómbralo smarty4 (Smarty 4) o Smarty (Smarty 5) y luego muévelo dentro del directorio lib/ de tu proyecto.
5Configuración del servidor web
Una vez instalado Temma, debes configurar el servidor web que ejecutará tu aplicación web.
Para ello, puedes usar la configuración de Apache/Nginx o archivos .htaccess.
5.1Archivos .htaccess
Los archivos .htaccess son necesarios en caso de alojamiento compartido.
Si es tu caso, no tienes que hacer nada. Los archivos ya están presentes (.htaccess en la raíz y www/.htaccess).
5.2Servidor Apache o Nginx
Usa la configuración de Apache o Nginx si tienes tu propio servidor (dedicado, virtual o contenedor Docker).
Encontrarás configuraciones de ejemplo (archivos etc/apache.conf y etc/nginx.conf), que puedes modificar según tus necesidades.
También tendrás que eliminar los archivos .htaccess existentes:
$ cd mi_proyecto
$ rm -f .htaccess www/.htaccess
6Estructura del proyecto
Este es el contenido de un proyecto Temma:
mi_proyecto/
bin/
cli/
controllers/
etc/
temma.php
apache.conf
lib/
Temma/
Smarty/
smarty-plugins/
log/
temma.log
templates/
tmp/
var/
vendor/
www/
index.php
- bin: Contiene programas utilitarios.
- cli: Contiene tus scripts de línea de comandos.
- controllers: Directorio principal para tus controladores.
-
etc: Directorio de configuración
- temma.php: Archivo de configuración del proyecto.
- apache.conf: Archivo de configuración del "virtual host", en el caso de un servidor Apache.
-
lib: Directorio base que contiene las bibliotecas externas, pero también tus objetos de negocio.
- Temma: El código del framework (para instalaciones sin Composer).
- Smarty (o smarty4): motor de plantillas Smarty (para instalaciones sin Composer).
- smarty-plugins: plugins de Smarty ofrecidos por Temma.
-
log: Directorio que contiene los archivos de log.
- temma.log: Archivo de log del proyecto.
- templates: Directorio que contiene las plantillas.
- tmp: Directorio de archivos temporales.
- var: Directorio opcional, que puede contener los archivos de datos de tu aplicación.
- vendor: Este directorio existe si has instalado Temma usando Composer, o si has cargado bibliotecas externas con Composer.
-
www: Directorio raíz del sitio, que contiene todos los archivos CSS, Javascript e imágenes.
- index.php: Script PHP principal, que inicia el framework.