[Symfony] Action ou module

Rechercher

[Symfony] Action ou module

Par saturn1  -  9 reponses  -  Le 18/01/2009 23:24  -  Editer  - 

Salut j'étais habitué au MVC, modèle vue controlleur.

Mais la je lis ce tutoriel sur sympfony

http://c-maneu.developpez.com/tutorial/web/php/symfony/intro/#LI

Mais il parle d'action template module

Je cite

# Les modules : Ce sont des unités fonctionnelles' de votre applications. (Par exemple : clients, produits, commandes). C'est à ce niveau que vous allez travailler le plus !# Les actions et les templates : Les modules comportent des couples d'actions-templates. C'est l'application du pattern MVC, et également la séparation entre la partie « traitement » et la partie « affichage ». Toutes les opérations sur la base de données et les autres traitements (web services, ftp, mail, etc) sont réalisés dans le fichier d'actions (monModule/actions/action.class.php), c'est ensuite le fichier de template (monModule/templates/monActionSuccess.php) qui se charge du rendu graphique.

Et c'est marqué que les répertoires créer seront :

 

Réponses apportées à cette discussion

Par Emacs  -  Le 18/01/2009 23:37  -  Haut de page  - 

Un module c'est une partie du site. Un composant de ton application si tu préfères.

Dans le module tu as au minimum les répertoires :

  • /actions qui contient le fichier actions.class.php qui lui même contient les méthodes à exécuter en fonction de l'Url appelée. C'est donc la partie "Contrôleur" du modèle MVC.
  • /templates qui contient la liste des templates HTML associés à chaque action publiques du fichier actions.class.php. C'est donc la partie "Vue" du modèle MVC.

Tu peux également avoir d'autres répertoires optionnels comme :

  • /i18n qui contient les dictionnaires de traduction propres au module dans le cas d'une application multilingue,
  • /config qui contient des fichiers de configuration propre au module,
  • /lib qui contient des classes de propres au bon fonctionnement du module. Dans ces classes, tu peux avoir des classes de modèle, donc appartenant à la couche "Modèle" de MVC.

Mais de manière générale, les classes de modèle se trouve plus haut dans le répertoire project_root/lib/model.

++

 
Par saturn1  -  Le 18/01/2009 23:58  -  Haut de page  - 

Ok donc il ya autant d'action que de page...

Mais apparement les classes sont déjà codée? car tu dis que /lib est optionnel.

Merci

 
Par Emacs  -  Le 19/01/2009 08:38  -  Haut de page  - 

Non il y'a une seule classe "moduleActions" par module dans laquelle tu déclares chaque méthode publique. Par exemple, si tu as un module "news", tu pourras créer une action "executeList()" et "executeRead()". La première te permettra de créer la page qui liste les news et la seconde te permettra de lire une news. Tu appelles ces deux méthodes dans le navigateur par l'url suivante :

http://www.tonsite.com/index.php/news/list

http://www.tonsite.com/index.php/news/read

Les classes de base du modèle sont auto générées par l'ORM (Propel par défaut ou Doctrine) et se trouvent dans le répertoire project_root/lib/model

++

 
Par saturn1  -  Le 19/01/2009 10:33  -  Haut de page  - 

Ok je vais voir à étudier tout cela.

Mais je croyais que le controleur c'était justement des appels à des méthodes.

Alors que la tu créer des controleurs avec des méthodes .

 

Merci

 
Par Emacs  -  Le 19/01/2009 11:24  -  Haut de page  - 

Hum, comment ça ?

 
Par saturn1  -  Le 19/01/2009 16:49  -  Haut de page  - 

Bah en gros pour moi le controleur c'est :

<?php
if(isset($_POST['news'])) {
$news = new NewsManager();
$news->addNews($_POST['news']);
}
?>

et le modèle c'est la classe NewsManager !

Mais bon faut que je me penche dessus plus en détail :P

Sinon elle sort quand la traduction du livre de symfony en francais?

Merci

 

 
Par Emacs  -  Le 19/01/2009 21:15  -  Haut de page  - 

Dans symfony, le contrôleur (du moins sa partie élémentaire puisque c'est plus complexe que ça) ce n'est ni plus ni moins qu'une méthode d'une classe qui est appelée, et qui prend en paramètre un objet sfRequest.

 
Par saturn1  -  Le 19/01/2009 23:31  -  Haut de page  - 

Oui mais dans le controleur c'est la que tu fais les tests en dur du style

if(isset($_POST))

//Appel de la méthode

 

??

merci

 
Par Emacs  -  Le 19/01/2009 23:52  -  Haut de page  - 

Oui et non !

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |