Contrôleurs
Introduction
Dans le dossier controllers
se trouve vos contrôleurs, qui se nomme suivant cette convention : NomController.php
. Normalement vous devez trouvez un contrôleur déjà existant au nom de MainController.php, ouvrez le et analysons son code.
La ligne 1 déclare l'espace de nom dans lequel nous travaillons (ici App\Controller
), cette ligne est obligatoire !
La ligne 3 déclare la classe MainController
qui doit avoir le même nom que le fichier sans .php et c'est ce nom que vous utiliserez dans vos routes. Cette classe hérite de BaseController
dans l'espace de nom Wigax
et cette héritage doit obligatoirement être présent !
Enfin ligne 4, 5 et 6 on déclare la méthode index
(qui sera appelé quand on demande l'url /
, d'après nos routes). Cette méthode prend un paramètre : l'objet route qui a appelé cette méthode. Ici on effectue qu'une simple action qui est de retourner la vue index.tpl
présente dans le dossier /app/views
.
Route vers méthode
Donc lorsque le router associe une route à l'url demandée, il appel la méthode associé au contrôleur. Cette méthode doit retourner le résultat de la méthode render
du même objet (d'où le $this
). Cela s'écrie plus communément :
La méthode render
prend un maximum de trois paramètre :
le nom de la vue
le tableau de paramètres associés à la vue (les variables qui seront utilisées dedans)
le tableau "d'events" sur lequel nous reviendrons plus bas
Exemple :
Les events
Maintenant que le principe du contrôleur vous semble acquis, intéressons nous à la partie principale de ce framework : les events. Ces derniers sont en fait des interactions ajax mais gérées automatiquement par le framework.
Ecriture
Un event s'écrie sous la forme :
Vous remarquez que cela ressemble beaucoup à une route. L'id de l'élément déclencheur est n'importe qu'elle id présent dans le Html. L’événement est n'importe quel événement javascript (click, mouseover, mousedown, ...). La dernière partie fonctionne comme les routes. On peut donc aussi rediriger vers une route. Si la route possède un champ variable on peut utiliser les crochets [ et ] pour définir ce champ :
Déclaration
Vous pouvez déclarer vos events à la fin de votre méthode lors de l'appel à la fonction render
ou alors n'importe où dans le script à l'aide de la méthode addEvent
:
Implémentation dans le contrôleur
Comme pour les routes, voici la méthode que vous devez implémenter :
Vous avez ici toutes les possibilités. Votre méthode peut donc avoir l'event comme paramètre et doit retourner un tableau où :
Les champs
title
eturl
sont facultatifLes champs
#id
sont les éléments qui vont être changé dans le code, vous pouvez donc tout à fait rendre une vue. (comme à la ligne 6)
Formulaires
Les formulaires utilise l'event submit
pour fonctionner, donc l'action que vous placerez dans votre HTML ne sera pas exécutée et on peut réduire l'écriture à :
Sans oublier de rajouter l'event :
Last updated