Le Framework PHP ORMFramework
Sommaire
- Présentation
- Le langage de développement
- Les fonctionnalitées
- Un framework modulaire
- La structure du framework
- Les frameworks du même type déjà en place
- Comparaison avec Symfony
- TP : Webservice météo
Présentation
Le développement de l’ORMFramework a commencé en 2015 lorsque j’ai eu le besoin de développer des Webservices MVC.
J’en ai développé plusieurs et je me suis aperçu qu’ils suivaient tous le même modèle.
J’ai donc réfléchis à développer un outil générique qui prendrait en compte tous mes besoins et qu’on pourrait dupliquer et modeler assez simplement selon mes futurs besoins.
Le langage de programmation
Étant donné que le langage PHP est mon langage de prédilection et un langage dans lequel je développe tous mes sites web, ce framework a été développé en PHP.
Il est compatible de la version 5 jusqu’à la dernière version de PHP.
Les fonctionnalitées
ORM Framework comporte différentes fonctionnalitées :
- Un ORM permettant de générer un webservice potentiellement fonctionnel en quelques secondes.
- Des commandes permettants de lancer l’orm, de créer une nouvelle strate ( un ensemble de modèle, contrôleur, entitée, et fichier de configuration ), de supprimer une ou plusieurs strates, activer ou désactiver un module, ...
- Différents services utilisables tel qu’un service de templates, de traduction, un service MySql et PostgreSql, et un service pour parser un fichier HTML ou XML.
- La possibilité de développer des modules ou des services et de les ajouter au framework très simplement.
- L’utilisation facultative mais préférée des Annotations.
- Il y a d’autres fonctionnalités que je ne cite pas dans le diaporama car elles ne sont pas encore fonctionnelles
Un framework modulaire
ORMFramework est présenté comme une sorte de kit où il y a un certain nombre de modules qui font partis des fondations, des modules fournis et des possibilitées infinis de nouveaux modules : Libre à votre imagination.
La structure d’un module :
- Un fichier ‘autoload.php’
- votre code avec autant de fichiers et de répertoirs que vous voulez.
Pour que votre module soit pris en compte par le framework :
- ouvrez un terminal sur votre linux ou votre mac, mettez vous à la racine du répertoir du framework et tapez :
- php ormframework.php add module
Il y a aussi la possibilité de récupérer un framework existant et de l’ajouter à l’ORMFramework en tant que module et de wrapper son utilisation sous forme de service pour avoir une syntaxe uniforme.
La structure du framework
Le framework est structuré en 4 parties :
- Les fichiers index.php et .htaccess et autoload.php qui sont à la racine.
- Le fichier ormframework.php est à la racine et qui sert à exécuter les différentes commandes du framework.
- Un répertoire Core qui contient le code fondamental du framework et le code des différents modules.
- Un répertoire Custom qui, comme son nom l’indique, contient le code du projet écrit par l’utilisateur ou le code généré par l’ORM.
Les frameworks de même type déjà en place
Parmis les frameworks PHP existants les plus connus, nous avons :
- Symfony
- Zend Framework
- CodeIgniter
Je vais plus particulièrement m’attarder sur les ressemblances et différences entre ORMFramework et Symfony
Comparaison avec Symfony
Symfony a bien des qualitées mais c’est un framework qui est aussi lourd en utilisation qu’en poids.
Un problème que j’ai surmonté grâce à la modularité et à la simplicité des syntaxes.
Je vais faire la comparaison avec les fonctionnalitées que j’ai cité un peu plus haut.
Fonctionnalités | ORM Framework | Symfony |
ORM | OUI | OUI |
Commandes | OUI | OUI |
Services | OUI | OUI |
Développement de services personnalisés | OUI | OUI |
Annotations | OUI | OUI |
Système modulaire | OUI | OUI |
On voit que toutes les fonctionnalitées présentées de l’ORMFramework sont présentes dans Symfony mais dans ORMFramework, elles sont présentes soit sous une forme allégée soit sous une forme moins lourde à customiser.
- Certaines fonctionnalitées ne portent pas le même nom dans symfony ou ne se présentent pas sous la même forme.
Exemples:
- Les “modules” dans ORMFramework sont appelés “Composants” dans Symfony.
- Les “Annotations” dans ORMFramework sont présentées sous forme de classe avec des méthodes statiques et dans Symfony sous forme de commentaires.
TP
Pour illustrer tout ça j'ai prévu un petit TP.
Le TP consiste à générer un webservice de météo.
Les prérequis sont :
- php 5.6 +
- mysql
- Linux ( Ubuntu / Debian - idéal )
- git
- composer
- wget
Pour commencer récupérez le zip suivant
dézipez le fichier sur votre serveur, placez vous à l'endroit où à été dézipé le fichier puis lancez la commande :
- php demo_meteo_0.0.1_test.php demo_meteo
puis tapez sur entré.
le paramètre est le nom du fichier où va être installer le framework.
une fois que le framework est installé, installez la base de donnée qui se trouve dans le répertoire "Custom/Sql" -> meteo_test_ormframework.sql sur votre serveur.
Vous pourrez ensuite accéder à la documentation : en local ou en production
ensuite, pour ajouter une connection en base de donnés que vous pourrez réutiliser dans le code, tapez la commande :
- php ormframework.php add dbconnect
et suivez les instructions.
Le framework est en mode production par default c'est à dire que certaines commandes ne seront pas executables comme par exemple "destroy project" qui comme son nom l'indique, détruit l'application.
Pour changer de mode, tapez la commande suivante :
- php ormframework.php change mode dev / prod
Autres particularités :
Le webservice en lui même est exploitable en lignes de commandes en tapant la commande suivante :
- php index.php dev/app <controller> <methode> <parametre 1> <parametre 2> ...
Rendu
Si vous tapez <url du site>/doc
Si vous tapez <url du site>
Si vous tapez <url du site>/app/meteo/get