Fonctionnement
Le dossier mtweb
L'extraction de l'archive mtweb fourni un dossier mtweb avec le contenu suivant :
Toutes les requêtes sur l'application se font sur le fichier index.php. Mtweb fourni aussi un script cli.php pour les appels en ligne de commande.
le dossier content est un dossier dans lequel mtweb ira lire et écrire des fichiers. On y trouve par exemple le fichier de configuration, mais aussi les données de l'application, si mtweb est configuré pour fonctionner avec SQLite ou XML. C'est aussi dans ce dossier content que le plugin mw_pages uploade ses images, ou que le plugin mw_sourceml enregistre les fichiers XML de ses sources. C'est la base de données, sous forme de fichiers, de mtweb.
le programme se trouve dans le dossier mw.
Le fichier pathes.php permet de configurer les chemins d'accès aux dossiers mw et content.
Un environnement d'éxecution
Le dossier mw a le contenu suivant :
C'est le dossier qui contient le programme et qui se décompose en quatres parties :
- un environnement d'éxecution (dossier env)
- une application principale (dossier app)
- des plugins (dossier plugins)
- des applications annexes (dossier libs)
Le fichier mw_app.php défini une classe qui représente le programme dans son ensemble. A chaque appel sur le fichier index.php, une instance du programme est créée.
Le programme commence par suivre une phase d'initialisations, durant laquelle un objet env est créé. Cet objet représente l'environnement d'éxecution et contient des méthodes pour interagir avec l'ensemble du programme (pour récupérer un accès aux données, passer des variables aux vues ou déclarer des erreurs...).
Lorsque l'initialisation est terminée et que l'environnement d'éxecution est prêt, le programme délègue alors le traitement de la requête à l'application principale et aux plugins.
Modèle MVC
Le développement d'une application sur mtweb se fait principalement dans le dossier app (ou dans le dossier app des plugins, qui a la même structure).
Le dossier app est organisé sur le modèle MVC (Modèle Vue Contrôleur).
A chaque requête, une fois l'initialisation terminée, le programme délègue le traitement à un contrôleur, dans le dossier controllers.
Dans le code du contrôleur, on pourra lire ou écrit des données, en passant par les méthodes définies par le modèle, dans le dossier data.
Les interfaces avec l'utisateur sont dans le dossier out.
Les helpers sont des librairies de fonctionnalités.
Le dossier observers contient le code qui doit réagir à des évenements durant le déroulement du programme.
Le dossier init contient du code dédié à l'initialisation de l'application.
Et le fichier config.xml contient des variables de configuration dédiées à l'application.
Intégrer ses développements
Le dossier mw/app décrit ci-dessus contient l'application principale, celle fournie par défaut avec mtweb. Cette application contient un gestionnaire d'identification et des pages de base, pour l'administration du site.
Vous pouvez faires vos développements dans l'application principale, dans ce dossier app, en éditant ou en ajoutant des contrôleurs, des modules de données, des vues pour les interfaces...
Vous pouvez aussi passer par les plugins.
Chaque plugin peut définir son propre dossier app, pour compléter ou altérer l'application principale. Le dossier app d'un plugin suit la même structure que celui de l'application principale et peut contenir un dossier controllers, un dossier data, un dossier out, etc.