-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Clementine est un framework MVC PHP. C'est un logiciel libre sous licence MIT.
- Récupérez la dernière version et décompressez la dans un dossier my_directory
- Pointez votre navigateur sur my_directory et laissez vous guider par l'installeur : http://localhost/my_directory/
Vous trouverez la liste des modules installables sur le site officiel.
Clementine est un framework MVC PHP dont le code est organisé sous la forme de modules faiblement couplés.
Tout module peut être surchargé par un autre module, selon le principe de l'héritage de la programmation orientée objet. L'ordre dans lequel les modules héritent les uns des autres n'est défini strictement par les modules, c'est le framework qui le décide.
Cela garantit que toute surcharge reste elle-même surchargeable.
Par défaut, toutes les URL sont capturées par le framework grâce au fichier /.htaccess
, qui va les analyser selon le schéma suivant :
http://www.monsite.com/
{$controleur}/
{$action}
La partie /**{$controleur}**/**{$action}**
s'appelle REQUEST_URI
.
Par convention :
- le premier mot de cette
REQUEST_URI
désigne la classe contrôleur du MVC qui sera ouverte. On dit que cette classe est le Contrôleur correspondant à la requête. - le deuxième mot de cette
REQUEST_URI
désigne la fonction à exécuter au sein de cette classe. On dit que cette fonction est l'Action du Contrôleur.
Si l'URL ne permet pas de déterminer la valeur de {$controleur} ou {$action}, la valeur 'index' sera utilisée par défaut.
On peut aussi utiliser des URL réécrites. Voir la page sur l'utilisation de l'objet ClementineRequest à ce sujet
À partir ce découpage, le framework va lancer le contrôleur de l'application de la manière suivante :
$controller = new {$Controleur}Controller(...);
$controller->{$action}Action(...);
En savoir plus sur l' arborescence et les conventions concernant les contrôleurs
Après avoir exécuté le contrôleur de l'application, le framework va automatiquement inclure la vue correspondante en lui transmettant :
- les données qu'il a stocké dans
$this->data
- l'objet
$request
qu'il a lui même reçu
$this->getBlock("$controleur/$action", $this->data, $request);
Remarque
Les vues sont généralement constituées plusieurs blocs inclus. On les appelle donc plus souvent "blocks" que "vues".
En savoir plus sur l' arborescence et les conventions concernant les vues
Les modèles servent à manipuler des objets métier. Généralement, le contrôleur y fait appel de la manière suivante :
$usersModel = $this->getModel('users');
$usersModel->needPrivilege('can_do_something');
Les modèles peuvent être appelés depuis un contrôleur, une vue, un autre modèle ou un helper.
En savoir plus sur l' arborescence et les conventions concernant les modèles
Les helpers sont des ensembles de fonctions réunies par thème. On peut appeler des fonctions issues de helpers ainsi :
$errorsHelper = $this->getHelper('errors');
$errorsHelper->register_err(...);
Les helpers peuvent être appelés depuis un contrôleur, une vue, un modèle ou un autre helper.
En savoir plus sur l' arborescence et les conventions concernant les modèles
Les modules du site peuvent être configurés au moyen des fichiers etc/config.ini
.
Il s'agit de fichiers définissant des [sections]
contenant des couples clef=valeur
On peut accéder à la configuration ainsi définie en appelant :
$config = $this->getModuleConfig('nom_du_module');
Prenons le fichier config.ini
suivant :
[module_users]
send_account_confirmation=0 ; envoyer des emails de confirmation de creation de compte
On peut accéder à la configuration ainsi définie en appelant :
$config = $this->getModuleConfig('users');
/*
$config = array(
'module_users' => array(
'send_account_confirmation' => 0
)
);
*/
Les données de $_GET
, $_POST
, $_SESSION
, $_COOKIE
, ou $_REQUEST
sont mises à disposition au travers d'un objet ClementineRequest.
Vous devriez utiliser cet objet plutôt que ces tableaux pour que votre code soit davantage réutilisable.