Présentation du framework Temma

Il y a quelques temps déjà, j’ai rapidement parlé d’un projet sur lequel je travaille. Il s’agit de la publication sous licence libre du framework MVC en PHP que j’ai développé pour les besoins de mon entreprise.

C’est fait. Le framework se nomme Temma, et il est disponible sur le site www.temma.net.
N’hésitez pas à y faire un tour, il y a une introduction rapide et une documentation détaillée.

L’approche générale du framework est de trouver le bon équilibre entre simplicité, modernité et bonnes pratiques.
Il suffit réellement de 3 minutes pour en comprendre les bases et l’utiliser sur de vrais sites. Il a été développé en utilisant des notions modernes (namespaces, autoload, …), avec quelques idées intéressantes − notamment au niveau de la gestion des données. Il est modulaire et configurable, ses fonctionnalités peuvent facilement être étendues en passant par des extensions (contrôleurs, vues, plugins). Quelques extensions sont déjà disponibles sur le site, mais j’espère étoffer tout ça rapidement.
La page de FAQ explique certaines spécificités de Temma.

La documentation n’est pour le moment disponible qu’en français ; c’était plus simple pour la publier rapidement. Néanmoins, tout est là pour sortir une version en anglais, un fois que tout sera traduit.

Un petit programme facilite la création de sites basés sur Temma. Ce script, ainsi que le code source brut du projet sont téléchargeables sur le site. Pour faciliter les contributions, je suis en train de mettre en place un dépôt sur GitHub.

J’attends avec impatience les premiers retours, qu’il s’agisse de questions ou de remarques concernant la documentation, de retours d’expérience sur l’utilisation du framework, ou de contributions sous forme de code source.

Edit : Merci à Éric (zenprog.com) pour avoir fait les premiers tests sur un environnement différent du mien, et m’avoir fait quelques remontées pleines d’intelligence.

12 commentaires pour “Présentation du framework Temma

  1. « quelques idées intéressantes − notamment au niveau de la gestion des données » > pourrais tu préciser ? Merci !

  2. Ca m’intéresse beaucoup, tu prévois de détailler ce point spécifique dans un prochain billet par hasard ? 🙂

  3. En ce qui concerne mon avis sur les ORM, oui. Cela mérite un article.
    Par contre, les détails d’implémentation du framework n’ont − a priori − pas vraiment leur place sur ce blog. Surtout que les infos sont disponibles sur le site de Temma.

  4. Bonjour,

    Loin de moi l’idée de troller, mais quelle ont été les motivations qui t’ont poussées à créer un nouveau framework php malgré l’existence des Zend Framework (1 ou 2), Symfony (1 ou 2) et autres CakePHP ?

  5. @David : Il y a tout un tas de raisons (certaines étant détaillées dans la FAQ). Mais s’il fallait pointer la plus importante, je dirais que c’est la certitude que je pouvais faire plus simple que les frameworks existants, sans pour autant faire «moins bien».

    J’estime que les frameworks que tu cites (auxquels j’ajoute CodeIgniter) demandent une période d’apprentissage longue et complexe, même pour faire des choses simples. Ce n’est pas un syndrome du «not invented here», car je ne réinvente pas la roue quand je peux m’en passer (à un contre-exemple près). Trouver le bon équilibre entre modernité et rusticité n’est pas évident, mais c’est un effort nécessaire. Tout est une question de savoir où on place le curseur.

    Par mon expérience personnelle, et celle partagée avec d’autres développeurs Web, je sais qu’il est plus rapide de développer un site avec Temma qu’avec un autre framework.
    Cette assertion peut être discutée jusqu’à un certain point en ce qui concerne CakePHP, qui est un framework plutôt facile à aborder. Mais il reste des notions très différentes entre les deux.

    Après, on pourrait disserter longtemps. Certains développeurs considèrent que l’utilisation d’un ORM simplifie les développements et les rend donc plus rapides. Pour ma part, j’ai un avis différent sur cette question, mais je reviendrai dessus une autre fois.

    Et juste pour préciser une chose : À l’époque où j’ai commencé à développer Temma (en 2007), le paysage informatique était légèrement différent. Zend Framework était encore en version beta, et Symfony 2 n’existait pas. En quatre an, Temma a lui aussi beaucoup changé ; il s’est amélioré, il a mûri. Et il n’a pas de complexe face aux autres framework. Évidemment, la simplicité a guidé les choix : certaines fonctionnalités sont absentes, ou ont été réduites de manière à ne présenter que ce qui est vraiment utile. Et puisque la notion de «vraiment utile» est sujette à interprétation, il est très facile d’ajouter les fonctionnalités voulues grâce aux plugins gérés par le framework.

  6. C’est vrai que la partie DAO est intéressante mais j’aurais tendance à croire et à dire qu’elle entrainerait trop de code (métier) dans les controleurs.

  7. @Hervé : En fait, non.
    Pour une utilisation basique (DAO générée automatiquement par le framework), on se retrouve effectivement à écrire les critères de recherche, par exemple, dans le contrôleur. Mais c’est très similaire à ce qu’il se passe quand on utilise un ORM.
    Pour une utilisation plus complexe, il faut créer ses propres objets DAO. Et il est alors possible d’y ajouter des méthodes personnalisées.

    De toute manière, le code métier devrait théoriquement se situer dans des objets métiers, instanciés par les contrôleurs, et qui font appel au modèle (qu’il s’agisse de DAO ou d’ORM) pour accéder aux données.

  8. Merci. N’hésite pas à me contacter si tu as des questions, ou pour me faire un retour d’expérience, ou tout simplement pour me dire ce que tu en penses.

  9. Dans ma todo de puis quelques temps, j’adhère à l’esprit.
    Allez, je vais me commencer un projet dessus !

  10. @Synbios : Cool 🙂
    N’hésite pas à me contacter si tu as des questions ou si tu rencontres des problèmes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.