Installation


1Prérequis

Pour utiliser Temma, vous avez besoin d'un hébergement Web exploitant l'interpréteur PHP en version 8.0 ou supérieure.

Temma peut utiliser toutes les bases de données supportées par l'extension PDO, ainsi que la base noSQL Redis, et le serveur de cache Memcached.


2Télécharger Temma

Pour créer votre projet basé sur Temma, la méthode recommandée est d'utiliser l'archive auto-extractible mise à disposition :

$ wget https://www.temma.net/release/download/latest -O temma.run
$ sh temma.run
$ mv temma mon_projet

Si vous préférez, vous pouvez extraire l'archive vous-même :

$ wget https://github.com/Digicreon/Temma/archive/main.tar.gz
$ tar xzf main.tar.gz
$ mv Temma-main mon_projet
$ chmod 777 mon_projet/log mon_projet/tmp

Vous pouvez même cloner directement le dépôt git :

$ git clone git@github.com:Digicreon/Temma.git mon_projet
$ chmod 777 mon_projet/log mon_projet/tmp
$ rm -rf mon_projet/.git

3Installer Smarty

Si vous utilisez Temma pour créer une API sans génération de page HTML, vous n'aurez pas besoin du moteur de templates Smarty. Dans le cas inverse, Temma a besoin de Smarty en version 4 ou plus (si vous utilisez PHP 8.1, il vous faudra Smarty 4.1 ou supérieur).

Vous pouvez installer Smarty de deux manières différentes : soit en utilisant Composer, soit en téléchargeant l'archive à la main.

3.1Installation avec Composer

Pour installer Smarty avec Composer, tapez cette commande depuis la racine du projet :

$ composer require smarty/smarty

3.2Installation manuelle

Pour installer Smarty manuellement, téléchargez l'archive (format ZIP ou TAR.GZ) de la dernière version de Smarty. En décompressant l'archive, vous y trouverez un sous-répetoire libs/. Renommez-le smarty4 puis déplacez-le dans le répertoire lib/ de votre projet.

Vous pouvez choisir d'installer Smarty au niveau du système entier, pour ne pas avoir à le réinstaller dans chaque projet. Pour cela, vous n'avez qu'à copier le répertoire smarty4 (renommage du sous-répertoire libs) dans un répertoire qui fait partie des chemins d'inclusion, comme par exemple /usr/share/php (au lieu de le mettre dans le répertoire lib/ de votre projet).


4Configuration du serveur web

Une fois Temma installé, il faut configurer le serveur web qui exécutera votre application web.
Pour cela, vous pouvez utiliser la configuration Apache ou la configuration par fichiers .htaccess.

4.1Fichiers .htaccess

Les fichiers .htaccess sont nécessaires en cas d'hébergement mutualisé.
Si c'est votre cas, vous n'avez rien à faire. Les fichiers sont déjà présents à la racine et dans le répertoire www/.

4.2Serveur Apache

La configuration Apache est à utiliser si vous avez votre propre serveur dédié.
Vous trouverez un fichier d'exemple dans le répertoire etc/, à adapter en fonction de vos besoins.
Il vous faudra en plus effacer les fichiers .htaccess existants :

$ cd mon_projet; rm -f .htaccess www/.htaccess

5Arborescence d'un projet

Voici le contenu d'un projet Temma :

mon_projet/
        bin/
        cli/
        controllers/
        etc/
           temma.php
           apache.conf
        lib/
           Temma/
           smarty/
           smarty-plugins/
        log/
           temma.log
        templates/
        tmp/
        var/
        vendor/
        www/
           index.php
  • bin : Contient des programmes utilitaires.
  • cli : Contient vos scripts en ligne de commande.
  • controllers : Répertoire principal pour vos contrôleurs.
  • etc : Répertoire de configuration
    • temma.php : Fichier de configuration du projet.
    • apache.conf : Fichier de configuration du "virtual host", dans le cas d'un serveur Apache.
  • lib : Répertoire de base contenant les bibliothèques externes, mais aussi vos objets métier.
    • Temma : Le code du framework.
    • smarty : Moteur de templates Smarty.
    • smarty-plugins : Plugins Smarty proposés par Temma.
  • log : Répertoire contenant les fichiers de log.
    • temma.log : Fichiers de log du projet.
  • templates : Répertoire contenant les templates.
  • tmp : Répertoire des fichiers temporaires.
  • var : Répertoire optionnel, pouvant contenir les fichiers de données de votre application.
  • vendor : Ce répertoire n'existe pas par défaut. Il est créé automatiquement si vous chargez des bibliothèques externes avec l'outil de gestion de dépendances Composer.
  • www : Répertoire racine du site web, contenant tous les fichiers CSS, Javascript et les images.
    • index.php : script PHP principal, qui démarre le framework.