Comment et pourquoi j'ai bâti mon framework PHP?Le pourquoi et le comment
Framework : Un framework est un ensemble de bibliothèques permettant le développement rapide d'applications. Il fournit suffisamment de briques logicielles pour pouvoir produire une application aboutie. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres. Ils sont en principe spécialisés pour un type d'application.
Source : fr.wikipedia.org/
Tout d'abord, j'ai commencé à me monter un framework sans m'en compte. J'étais tanné de devoir me taper des tableaux HTML à tout bout de champ. J'ai alors commencé à me faire une classe en PHP 5 pour faire exactement cela. Puis, je voulais pouvoir trier les colonnes, j'ai donc modifié ma classe pour ajouter cette fonction. Ensuite, je devais souvent faire des classes pour l'authentification. J'ai donc monté une classe (toujours en PHP 5) pour gérer les connexions et les authentification. J'ai ensuite utilisé celle-ci dans différentes applications web. Par la suite, je me suis tapé une migration de code d'ODBC (odbc_connect(), etc) à MySQL (mysql_connect(), etc) et je me suis dit que je ne voulais JAMAIS devoir à refaire ça. J'ai donc fait une classe pour agir comme wrapper entre mon code PHP et mes bases de données. Je n'ai plus alors qu'à utiliser mes méthodes définies dans ma classe et d'indiquer seulement dans le constructeur quel BD utiliser. Comme ça, si je change de BD, je ne dois pas modifier tout mon code, mais juste l'appel du constructeur. Exemple, au lieu de faire :
odbc_connect('host', 'username', 'password');
je fais :
$db = DBWrapper('host', 'username', 'password', ODBC);
Apprenez en plus plus sur la classes DBWrapper et télécharger celle-ci. Encore plus de classesJe devais souvent faire des interfaces web. J'ai donc fais des classes qui me permettent de générer des pages web à partir de classe en PHP 5. J'ai donc monter de toute pièce des classes pour :
Exemple d'utilisation de ces classes :
require_once('htmlwebpage.php');
$page = new CWebPage;
$page->LoadSkeleton();
$page->SetPageTitle("Test de login");
$page->AddPrimaryNavItem("Bouton de test", "http://www.google.ca/", "images/bon.gif", "images/boff.gif");
$page->AddPrimaryNavItem("Bouton de test", "http://www.google.ca/", "images/bon.gif", "images/boff.gif");
$page->AddPrimaryNavItem("Bouton de test", "http://www.google.ca/", "images/bon.gif", "images/boff.gif");
$page->AddSecondaryNavItem("Produits et services", "", "images/nav_off.gif", "images/nav_on.gif");
$page->AddSecondaryNavItem("Financement", "", "images/nav_on.gif", "images/nav_off.gif");
$page->AddHeaderNavItem("Français", "http://www.monsite.com");
$page->AddHeaderNavItem("Conctatez-nous", "http://www.monsite.com");
$page->SetMenuTitle("Navigation");
$page->AddMenuItem("Login", "", 1);
$page->SetMenuActif(0);
$page->m_HtmlBody->FormLogin();
echo $page->Render();
J'ai même créer des classes qui génère pour moi le code PHP nécessaire à la création de page, me retrouvant ainsi donc avec un CMS. Après un an, je me retrouve avec 25 classes formant un ensemble assez intéressant et qui répond parfaitement à mes besoins.
Je fais vous présenter certaines de ces classes dans un prochain article. PEAROn peut se demander pourquoi je n'utilise pas les classes PEAR existantes pour faire ça. Il existe déjà des classes PEAR pour l'authentification, pourquoi réinventer la roue? Par paresse. Paresse de devoir apprendre à me servir du code de quelqu'un d'autre. Paresse de ne pas connaître intrinsèquement comme fonctionne le tout. De plus, quand je programme quelque chose moi-même, j'ai une meilleure connaissance des limites et capacités de mes outils. De plus, comme j'utilise un hébergeur partagé, je ne peux pas installer PEAR. Et surtout, je ne m'étais pas rendu compte que je commencais un framework :-) Sébastien Brodeur Il est strictement interdit de reproduire ce texte sans la permission écrite de l'auteur. Commentaire(s)Sébastien Brodeur - 2006-11-21 12:01:10
Vous pouvez maintenant ajouter des commentaires.
bachir - 2008-02-12 14:28:47
ton frameworks trés interressant. enfin je trouve
mais ce que je remarque dans la plupart des frameworks le manque de documentation sur les propriétés et les méthodes. dur dur sans doc non ? j'aimerai utiliser ton framework pour voir enfin si tu veux. mais bravo quand même. mon e.mail à tout hasard hassini_bachir@yahoo.fr mantisseo - 2009-01-12 08:54:31
"On peut se demander pourquoi je n'utilise pas les classes PEAR existantes pour faire ça. Il existe déjà des classes PEAR pour l'authentification, pourquoi réinventer la roue?" .
Je respecte totalement ton point de vue, cela dit, comme tu le précise, dans le cadre d'un projet X ou Y, ton Framework a beau être architecturé de la manière la plus FUN soit-elle, un nouveau développeur s'aventurant dans le code mettra bien quelques décennies avant d'avoir la productivité qu'il connait sur du code qu'il a l'habitude d'avaler, en codant sur TON Framework . Morale : Les développeurs souvent mélés à des histoires dans le genre, ont décidés de canaliser toute leurs forces de codeurs acharnés sur du code CONNU de TOUS, architecturé selon des normes CONNUES DE TOUS, etc. Les gens doués comme toi ont alors la possibilité de CONTRIBUER à la mise à jour de l'un de ces Frameworks :) De dire "Non, ça va pas" ou "Je peux faire mieux" . Quand ils remarquent une anomalie . En général, avec le nombre incroyable de contributeurs dont bénéficient les Frameworks les plus connus, un Framework est souvent une base solide,testée,approuvée. Ajouter un commentaire |
Les gens qui ont consulter cet article, ont aussi consultez ceux-ci : |
|