mercredi 5 août 2009

Framework Turbulences : TUTO 1 - Hello

Framework Turbulences :
Premier module = Hello

Pour utiliser ce tutoriel, votre installation de turbulences doit être faite. Si ce n'est pas le cas ou si vous ne savez pas, faites d'abord ceci.

Les modules

Tout le code relatif au module sera situé ici myapp/modules/nomdumodule .Un module est un ensemble données/role. Il est divisé en 3 blocs selon le modèle MVC:

  • un controlleur qui va définir les actions et le comportement du module
  • un modèle qui va gérer les données, leur accès et la validation
  • une vue qui va définir les pages visibles du module

Il s'agit du schéma classique du modèle MVC. Ce modèle permet la séparation de ces parties et est très utilisé dans le web et dans les frameworks les plus utilisés. Vous pouvez visiter la page Wikipedia ou cet excellent site : ADC introduction.

Le fait de créer des modules permet la réutilisation des programmes du fait de leur séparation avec le reste des composants.

Comment créer un module

Manuellement

Un générateur de module existe et il est recommandé de l'utiliser, car il automatise toutes les taches de création du module. Son utilisation est décrité dans la section suivante. Ces instructions sont données pour comprendre totalement comment fonctionne un module.

  • créer le répertoire hello dans myapp/modules
    $ cd myapp/modules
    $ mkdir hello
  • créer la hierarchie dans le dossier hello :
    myapp/modules/hello
    + HelloController.php // hosts class HelloController extends TURB_Controller {}
    + HelloView.php // hosts class HelloView extends TURB_View_Smarty {}
    + Hello.php // hosts class Hello extends TURB_Object {}
    + views
    + html // hosts Smarty HTML templates
    + script // hosts view specific javascript code
    + style // hosts view specific css code

file tree view

Automatiquement

Il faut juste taper

$ cd /myapp
$ script/generate_module hello

Cela va créer la hierarchie des fichiers.

Créer le modèle

Nous allons désormais créer chaque composants du modèle MVC en commencant par le modèle : (le modèle du module est le fichier modules/hello/Hello.php)

  • definir un modèle vide comme ceci :
    class Hello extends TURB_Object
    {
    }

Créer le controlleur

(le controlleur du module est le fichier modules/hello/HelloController.php)
  • definir le controlleur comme ceci :
    class HelloController extends TURB_Controller
    {
    // must be declared; called after the constructor
    public function setup() {}

    public function action_default()
    {
    $name = 'world';
    $view = new HelloView();
    $view->assign('firstname', 'Walt');
    return $view->html_hello($name);
    }
    }

Créer la vue

(la vue du module est le fichier modules/hello/HelloView.php)
  • definir la vue comme ceci:
    class HelloView extends TURB_View_Smarty
    {
    public function _hello($arg)
    {
    $this->assign('name', $arg);
    }
    }

Créer la template

La template est etroitement liée à la vue. Il s'agit du code HTML, de l'apparence de la page pour l'utilisateur.

(le template hello du module hello se situe ici modules/hello/views/html/hello.tpl)

Le fait d'appeler $view->html_hello($name); va controler et appeler la méthode _hello présente dans la vue (HelloView), dans une réponse HTML (on va y revenir) ; cette méthode va automatiquement chercher la template hello.tpl pour le rendu.

Tester le module Hello

Maintenant, entrez http://turbapp/hello/ - ce qui va afficher la nouvelle page.

Le chemin d'éxecution est le suivant :

index.php lance le dispatcher, instancie le controlleur du module hello

HelloController.php lance action_default() qui instancie la vue HellowView, attribue les variables qu'il faut et appelle html_hello()

HellowView.php Lance html_hello() qui va chercher la template html/hello.tpl

Enfin, le dispatcher rend la vue et les données dans le navigateur du client

Notes

Sources - turbulences.com

Aucun commentaire:

Enregistrer un commentaire

Bonjour,