Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2061 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  MVC ET PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MVC ET PHP

n°1924991
Schum-hack​er
Posté le 18-09-2009 à 09:55:04  profilanswer
 

Bonjour,
ce que j ai compris du mvc:
 
Controlleur -> capte un evenement appel le model puis la vue
Model -> methode metier , crée l objet qui sera affiché par la vue (la je le serialize)
Vue -> affiche l objet (je le unserialize en debut et serialize  a la fin )
 
 
ma question est-ce normal que dans ma vue j 'ai:
 -  un unserialize en debut et serialize  a la fin de mon objet
 - d avoir des tests genre if(toto->getX()==true){ <span class="inactif">abc<span> } else <span class="actif">abc<span>
 ou encore if(toto->getX()==true){ <span class="inactif">abc<span> } else <span class="inactif">dbc<span>
 
et meme question pr les formulaires genre:
 
<input ....  maxlength=\''.toto->getSize().'\' >
 
merci  :jap:  
 
toute aide est la bienvenue  :jap:  :jap:  :jap:


Message édité par Schum-hacker le 18-09-2009 à 09:59:02
mood
Publicité
Posté le 18-09-2009 à 09:55:04  profilanswer
 

n°1924997
budlite
Fresh
Posté le 18-09-2009 à 10:05:31  profilanswer
 

Oui biensur c'est normal d'avoir des if dans ta vue ( au passage le ==true n'est pas obligatoire ;) ). Après si vraiment la vue est complètement différente en fonction d'une valeur precise,mieux vaut mettre le filtre if dans le controller et utiliser différentes vues.
 
Sinon pour le coup du serialize/unserialize tu peux expliquer plus en detail ce que tu veux faire ? :??:


---------------
Fresh
n°1925001
Schum-hack​er
Posté le 18-09-2009 à 10:16:53  profilanswer
 

au passage le ==true n'est pas obligatoire ;) lol
Sinon pour le coup du serialize/unserialize tu peux expliquer plus en detail ce que tu veux faire ? :??::
c'est pour passer l'objet a ma vue:
ce que je fais c'est qu'au niveau du model j'instancie l'objet que je vais utiliser dans ma vue.
Je le stocke en session et donc je le serialize car c'est un objet  
quand je suis dans ma vue je le unserialize pour pouvoir le réutiliser comme un objet
mais peut etre est il plus judicieux de le passer en parametre de mes methodes ou autre?
 
près si vraiment la vue est complètement différente en fonction d'une valeur precise, mieux vaut mettre le filtre if dans le controller et utiliser différentes vues.  
C'est une vue qui est dynamique mais pas complétement différente


Message édité par Schum-hacker le 18-09-2009 à 10:17:09
n°1925015
rufo
Pas me confondre avec Lycos!
Posté le 18-09-2009 à 11:25:48  profilanswer
 

pourquoi pas faire un passage en paramètre de ton objet à afficher à une fonction?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1925016
flo850
moi je
Posté le 18-09-2009 à 11:29:25  profilanswer
 

tu ne dois stocker en session que les données qui doivent survivre d'une page à l'autre  
 
et pou rle passge d'objet , en général , je fais qq chose comme ça  

Code :
  1. class MyControler extends BaseControler{
  2.     function affiche(){
  3.           $model = $this->getModel();
  4.           $view = new MyView ($model);
  5.            $view->show();
  6.     }
  7. }


---------------

n°1925051
Schum-hack​er
Posté le 18-09-2009 à 12:35:17  profilanswer
 

ok merci je vais faire un passage par parametre :)
et pr le reste? sur la vue?

n°1925071
flo850
moi je
Posté le 18-09-2009 à 13:56:53  profilanswer
 

il y a  des tests dans la vue, du genre , tu ne peux pas l'éviter  
par contre, il faut absolument eviter d'vaoir une requete SQL directement dans la vue  

Code :
  1. if($this->getModele()->getX() >0){
  2.  
  3. }


---------------

n°1925075
Schum-hack​er
Posté le 18-09-2009 à 14:10:10  profilanswer
 

ok merci
parcontre ca me fait byzarre le  
 

Code :
  1. $view = new MyView ($model);
  2.   $view->show();


j aurais penser a  
 

Code :
  1. $view = new MyView ();
  2.   $view->show($model);


???


Message édité par Schum-hacker le 18-09-2009 à 14:10:31
n°1925314
Schum-hack​er
Posté le 20-09-2009 à 10:19:45  profilanswer
 

flo850 j ai utilisé ta facon de faire mais j ai une autre question:
ex: dans ma vu j affiche un attribut x:
toto est un objet qui compose mon objet x (la relation entre mon objet courant et toto est 0..n dans les 2 sens)
$this->getToto()-->getX();
 
le pb c'est que x existe que si  on a un objet toto
donc il faut un test genre:
if($this->getToto() != NULL)
$this->getToto()-->getX();
 
et je trouve pas ca terrible je pensais faire tous ces test dans le constructeur de ma vue en créant un objet vue avec ses propres attributs ?

Message cité 1 fois
Message édité par Schum-hacker le 20-09-2009 à 10:19:54
n°1925405
asmodaiii
Posté le 20-09-2009 à 22:38:52  profilanswer
 

En même temps tu fais ce que tu veux.  
Il y a toujours moyen de faire mieux.

mood
Publicité
Posté le 20-09-2009 à 22:38:52  profilanswer
 

n°1925470
Schum-hack​er
Posté le 21-09-2009 à 10:03:58  profilanswer
 

asmodaiii a écrit :

En même temps tu fais ce que tu veux.  
Il y a toujours moyen de faire mieux.


 
ben justement si t as mieux partage ;)

n°1925596
rufo
Pas me confondre avec Lycos!
Posté le 21-09-2009 à 16:48:24  profilanswer
 

Schum-hacker a écrit :

flo850 j ai utilisé ta facon de faire mais j ai une autre question:
ex: dans ma vu j affiche un attribut x:
toto est un objet qui compose mon objet x (la relation entre mon objet courant et toto est 0..n dans les 2 sens)
$this->getToto()-->getX();
 
le pb c'est que x existe que si  on a un objet toto
donc il faut un test genre:
if($this->getToto() != NULL)
$this->getToto()-->getX();
 
et je trouve pas ca terrible je pensais faire tous ces test dans le constructeur de ma vue en créant un objet vue avec ses propres attributs ?


 
Je pense que l'ex était volontairement très court. Je pense que dans la pratique, l'instanciation de la vue va soit prendre un type de vue en paramètre soit c'est le nom de la classe de vue elle-même qui va définir la vue à créer  
ex :  
$view = new MyView ("VueToto" );
ou
$view = new MyTotoView();
MyTotoView héritant de la classe générique MyView.
 
De ce fait, ta vue étant spécialisée, ça va drôlement limiter le genre d'objet qu'elle va devoir manipuler...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  MVC ET PHP

 

Sujets relatifs
Script PHP RSSTransformer un PHP en XML
Problème de code PHP[Php/OpenLaszlo] conception de site/ transmission client/serveur
[PHP, JavaScript] Copier la valeur d'un input[PHP] Comparaison de chaine d'un fichier
[PHP] Frmwrk MVC, adapté à toutes les situations ? (quiche inside :-o)PHP MVC et urls
Model View Controller (MVC) - Architecture des applications PHP[PHP] Utiliser un framework MVC ?
Plus de sujets relatifs à : MVC ET PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR