Orange Framework
Les sources du framework (simple), utilisé par les projets de Tild Online Software, sont disponibles. Nous voulions un outil simple et totalement maitrisable. Bien entendu, les outils comme CakePHP ont évolués très largement. Zend Framework est, à présent, utilisable en production. Bref, bien que la plupart du temps sur certains projets, nous préférons la souplesse d’utilisation d’Orange Framework, il faut avouer que le développement risque d’être fortement freiné, et c’est tant mieux, par la puissance de CakePHP ou Zend Framework.
A la base, nous nous étions fixés certaines règles que nous voulions voir appliquées sur d’autres Framework :
- Eviter les mappings de données
Sans doute parce que nous aimons le SQL et aussi parce que nous reprochions souvent au FW existant des mappings de contexte, nous laissons le développeur écrire ses propres requêtes. De même, Il existe des variables globales qui permettant de récupérer les données d’un formulaire posté ($_REQUEST, $_POST, … ). Alors pourquoi ne pas les utiliser directement plutôt que se prendre la tête à gérer des $data, $request et autres fantaisies. - Ne pas ajouter une couche template
PHP est déjà un moteur de template. Je n’ai jamais vraiment saisi l’intérêt de la chose. Le template alourdit le code, complexifie l’implémentation et ralentit fortement l’exécution du script. Sans compter qu’il faut également un temps d’adaptation et d’apprentissage afin de maitriser les systèmes de boucles, de procédures, d’inclusion et autres structures de contrôles.Franchement, voyez-vous une différence significative à utiliser cette formulation Smarty :
{foreach from=$myArray item=titre}
{$titre|upper}
{/foreach}plutôt que d’utiliser cette version en PHP ?
<?php
foreach ($myArray as &$titre):
print strtoupper($titre);
endforeach;
?> - Eviter la sur-utilisation des design patterns
Ok… Ca amuse les enfants 10 minutes, mais certains design-patterns, appliqués au Web, sont complètement superflus (qui a dit Factory ?). Bref, mis à part l’implémentation du modèle MVC et le Singleton, j’en désapprouve l’utilisation intensif et donc ne les intègre pas dans Orange. - XML à donf = perte de temps
Le XML est un format d’échange et doit donc le rester. Ce format n’a rien à faire dans un framework si seule ce dernier y accède. En gros, pourquoi développer des fichiers de mapping ou un fichier de configuration en XML, si seul un unique script vient y piocher les informations dont il a besoin ? Je pense que le XML doit être utilisé à bon escient : par exemple, si un ou plusieurs logiciels génèrent le code en question ou si différentes plateformes logicielles (et pourquoi pas, dans différents langages) utilisent un unique fichier de configuration.
Voilà donc les quelques petites règles fixées pour le développement d’Orange que nous mettons à votre disposition ici : http://svn.tild.com/orange/
svn co http://svn.tild.com/orange/
Une petite et courte documentation arrivera sous peu.