Documentation du framework

Présentation du projet UTM

le framework PHP5 orienté objet developpé par dizagn est basé sur des concepts et des patterns simples et a nos yeux essentiels : tel que DRY, KISS afin de garder la simplicité de maintenance dans un minimum de composants, ou encore MVC pour assurer une séparation entre la logique metier de votre application , l'acces aux données, et la présentation de votre rendu. Ceci en fournissant les fonctionnalitées modernes d'un framework, ainsi qu'un systeme de gestion de plugins avancé. Il est léger, compact, rapide à prendre en main et suffisament modulaire pour s'adapter à tous types de projets. De nombreux plugins sont disponibles et sa structure ouverte vous permet de facilement intégré des librairies externes.

Premiers pas avec le framework

Les fichiers index.php

Il y a deux fichiers index.php. l'un situé dans le dossier "www/index.php" qui contient le demarrage du framework et l'autre qui contient une redirection vers le premier fichier index.php. Il s'agit d'une bonne pratique visant a empecher l'utilisateur web a remonter dans les dossier parent. L'ideal etant de poser un alias vers le fichier www/index.php. Pour ceci il faut voir la documentation correspondante a votre seveur web. Nous ne verrons que le fichier situé dans www/index.php car c'est lui qui nous interesse.

Les URLs

Certains éléments constituants la requete sont des mots clés permettant au framework de connaitre les composants(Ex: controlleurs et vues) a charger. Les mots clés par defaut sont : ctrl pour les controlleurs, act pour determiner l'action a executer sur le controlleur et mod pour les modules permettant d'ajouter un niveau supplémentaire dans la hierarchie des controlleurs.
Ces mots clés sont configurables dans le fichier de configuration du framework "utm.ini".
Voir les paramètres module, controller, action dans la section "request"
La valeur par defaut des composants de la requete tel que "ctrl" et "act" est elle aussi définie dans le fichier de config
Voir le paramètre "default" dans la section [core].

Dans cet exemple on appele l'action "delete" sur le controlleur "product" situé dans le module "admin" avec un parametre supplémentaire id=12

Configuration du framework

Fichier de configuration du framework : utm.ini

Fichier de configuration de l'applicatif web : config.ini

Dans ce fichier vous pouvez ajouter autant d'entrées que vous le désirez. Attention tout de même a ne pas surcharger celles d'un plugin par exemple

Les controlleurs

Création d'un controlleur

Tous les controleurs de l'application doivent étendre la classe "coreController" afin de profiter des fonctionnalités du framework, et posséder une methode "execute" Dans cette implémentation du MVC le controlleur est obligatoire. Le controleur peut redirigé vers un autre controleur(redirect) ou appelé un autre controleur (forward).

Les super-controlleurs

On s'apercoit que dans certains cas les controlleurs contiennent peu de choses, il est alors fastidieux et inutile de créer autant de ces fichiers. La notion de supercontroller est alors introduite, ce qui nous permet de réduire le nombre de fichier et de baisser le temps de developpement d'un nouveau controleur. Le principe consiste a remplacer la methode obligatoire execute d'un controlleur par le nom de l'action demandée, dans une classe dont la syntaxe comporte uniquement le nom du controlleur et eventuellement d'un module.
Attention le nom de l'action ne peut etre un mot clé réservé de PHP comme default par exemple

Les vues

Toutes les vues doivent étendre la classe coreView et posséder une methode "render". C'est la vue qui a la charge d'afficher son contenu avec eventuellement un systeme de template ou de layout. Ces éléments sont fournis par les librairies correspondantes, mais vous pouvez sans probleme ajouter vos propres librairies.

Les modèles

Création d'un modèle

Les modèles doivent étendre la classe coreModel afin de profiter des fonctionnalités du framework. La classe coreModel étend elle meme une classe de connexion et de manipulation de la base de données. La librairies par defaut s'appelle "db", elle est basé sur mysqli. Mais vous pouvez tres bien utiliser la librairie que vous voulez. pour cela la classe coreModel devra étendre votre classe et chaque modele que vous créérez pourra en hériter

Utilisation d'un modèle

la classe coreModel definit la methode factory permettant de renvoyer une instance de l'objet model passé en parametre. On peut ensuite utiliser les methodes du modèle sur l'objet fraichement instancié.

Les plugins et les evenements

Principe de fonctionnement des plugins

Les plugins permettent deux choses :

  1. Ajouter des fonctionnalités aux controleurs, aux vues, aux modeles, et aux autres plugins.
  2. Réagir à des evenements.
Les plugins pour fonctionner doivent etre enregistrés dans le fichier index.php apres la creation de l'instance du framework grace a la methode "registerPlugin", cette methode recoit en parametre le nom de la classe du plugin.Cette methode sera appelé autant de fois que vous aurez un plugin a enregistrer Ensuite vous n'avez plus qu'a placer vos fichiers dans le dossier des plugins (Generalement : application/plugin/). Chaque plugin doit etendre la classe corePlugin pour profiter des fonctionnalités du framework.
/!\ Attention /!\ L'ordre dans lequel vous enregistrez les plugins a une importance. Surtout si il réagisse a un evenement.

Enregistrement d'un plugin

Dans la page d'index vous devez enregistrer les plugins de la facon suivante pour qu'il soit pris en compte par le framework. le fichier du plugin doit etre placé dans le dossier : "/application/plugin" et le fichier de configuration du plugin si il existe dans "/application/config"

Ajout de fonctionnalités

Les plugins permettent d'ajouter des nouvelles fonctionnalités dans le framework et ensuite les mettre a disposition dans les composants que vous créez (Controleur, vue, modele, plugin) comme si il s'agissait d'une methode de cette classe.

Utilisation du plugin

Utilisation de notre nouvelle methode dans une vue.

Les evenements

Les evenements sont des actions déclenchés par le framework ou par l'utilisateur. Les plugins sont à l'écoute de ces evenements et se déclenche selon l'ordre dans lequel ils ont été enregsitrés dans le fichier index.php.

Evenements par defaut

onStart() :
onExecute() :
onEcho() :
onFinish() :
onError() :

Ajouter ses propres evenements

Vous pouvez créer vos propres evenements grace à la methode statique "emit" de "corePlugin". Ensuite il vous suffit de de définir la methode dans le plugin comme pour n'importe quel autre evenement. Cet evenement peut etre emis a partir d'un controleur d'une vue, d'un modele, d'un plugin ou de tout autre composant au cours de l'execution du framework. Par convention les evenements du framework commence par "on", mais ceci n'a rien d'obligatoire.

Le gestionnaire d'erreur

Le registre et le cache

L'objet request







436.168 Ko (580.484 Ko)