Petite question à propos PHP POO, MVC ?
chabacha109
Messages postés
268
Date d'inscription
Statut
Membre
Dernière intervention
-
chabacha109 Messages postés 268 Date d'inscription Statut Membre Dernière intervention -
chabacha109 Messages postés 268 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis entrain de concevoire une application web dynamique stockant trop d'informations,
c'est pour cela j'ai choisi l'architecture MVC avec php5(poo).
alors : j'ai deux classes controleur(traitement des données avec php) , modéle (connection avec la base de donnée , requetes sql.....) et une page index. php(c'est la vue.., affichage des résultats ..)
la question qui se pose ici : quelle est le type de relation entre la classe controleur et modéle ??(simple relation, héritage....) ???
voila mon probléme, j'espére que c'est claire
merci d'avance^^
To Be Or Not To Be , Marwen
je suis entrain de concevoire une application web dynamique stockant trop d'informations,
c'est pour cela j'ai choisi l'architecture MVC avec php5(poo).
alors : j'ai deux classes controleur(traitement des données avec php) , modéle (connection avec la base de donnée , requetes sql.....) et une page index. php(c'est la vue.., affichage des résultats ..)
la question qui se pose ici : quelle est le type de relation entre la classe controleur et modéle ??(simple relation, héritage....) ???
voila mon probléme, j'espére que c'est claire
merci d'avance^^
To Be Or Not To Be , Marwen
A voir également:
- Petite question à propos PHP POO, MVC ?
- Easy php - Télécharger - Divers Web & Internet
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Expert php pinterest - Télécharger - Langages
- Petite croix snap ✓ - Forum Snapchat
- Petite cle en haut a droite samsung - Forum Samsung
6 réponses
Salut,
« et une page index. php(c'est la vue.., affichage des résultats ..) »
Je pense que index.php devrait plutôt être le contrôleur car ceux-ci sont appelés par le navigateur, pas les vues.
« quelle est le type de relation entre la classe controleur et modéle ??(simple relation, héritage....) ? »
Le contrôleur doit inclure le modèle.
À partir de là, tu peux utiliser la classe ou les fonctions écrites dans le modèle.
Le contrôleur doit également inclure les vues.
« et une page index. php(c'est la vue.., affichage des résultats ..) »
Je pense que index.php devrait plutôt être le contrôleur car ceux-ci sont appelés par le navigateur, pas les vues.
« quelle est le type de relation entre la classe controleur et modéle ??(simple relation, héritage....) ? »
Le contrôleur doit inclure le modèle.
À partir de là, tu peux utiliser la classe ou les fonctions écrites dans le modèle.
Le contrôleur doit également inclure les vues.
salut merci pour la réponse :),
aprés ce tutoriel j'ai trouvé que ta réponse est la bonne....
http://www.siteduzero.com/tutoriel-3-31452-adopter-un-style-de-programmation-clair-avec-le-modele-mvc.html
j'ai tort ! , index.php est le controleur...,je comprend bien..
en effet, il me reste une deuxiéme question :
pour mon application je doit travailler avec l' orienté objet , malheureusement dans ce tuto c'est du php classique....
bref : je vous donne un exemple de mvc avec POO , ensuite tu me donne ton avis à propos.
c'est la page controleur.php:
//appel au modéle
/*
NB get_membre_information($x) c'est une fonction dans "modéle.php"
elle retourne un tableaux des informations de membre
*/
----------------------------------------------------------------------
modéle.php(un ensemble des fonctions) :
//connection..
----------------------------------------------------------------------
vue.php(instanciation de la classe membre....)
par exemple :
----------------------------------------------------------------------
je crois que c'est parfait ? non ?
bon, dans cet exemple la page "modéle.php" est un ensemble des fonctions,
heureusement ici les appelles vers les fonctions est assez simple,
mais dans le cas où la page "modéle.php" soit une classe, comment faire dans ce cas ,
plutôt comment interroger les methodes de cette classe a partir la classe membre ??
j'ai une idée mais je ne suis pas sure ...
faire une instance de la classe modéle.php, ensuite appeller une methode..
le probléme ici c'est (a chaque appel a une methode de la classe membre il faut faire une instance de la classe modéle.php..) c'est trop couteux en mémoire....je crois
voila donc.
merci pour votre attention ^_^
To Be Or Not To Be , Marwen
aprés ce tutoriel j'ai trouvé que ta réponse est la bonne....
http://www.siteduzero.com/tutoriel-3-31452-adopter-un-style-de-programmation-clair-avec-le-modele-mvc.html
j'ai tort ! , index.php est le controleur...,je comprend bien..
en effet, il me reste une deuxiéme question :
pour mon application je doit travailler avec l' orienté objet , malheureusement dans ce tuto c'est du php classique....
bref : je vous donne un exemple de mvc avec POO , ensuite tu me donne ton avis à propos.
c'est la page controleur.php:
//appel au modéle
include_once("modéle.php"); class membre{ private $login; private $password; private $pays; public __construct($log) {
/*
NB get_membre_information($x) c'est une fonction dans "modéle.php"
elle retourne un tableaux des informations de membre
*/
$tab=get_membre_information($log); $this->login=$tab['login']; $this->password=$tab['password']; $this->pays=$tab['pays']; } public function connect($log,$pass) { $est_connecte=existe_membre($log,$pass); if($est_connecte) { echo "ok"; $_SESSION["login"]=$log; } else echo "no"; } public function inscri($log,$pass,$pays) { $res=ajouter_membre($log,$pass,$pays); if($res) echo "ok"; else echo "no"; } } include_once("vue.php");
----------------------------------------------------------------------
modéle.php(un ensemble des fonctions) :
//connection..
$connexion = new PDO("mysql:host=root;dbname=ma_base"); function ajouter_membre($log,$pass,$pays) {....} function existe_membre($log,$pass) {....} function get_membre_information($log) {....}
----------------------------------------------------------------------
vue.php(instanciation de la classe membre....)
par exemple :
$m=new membre("chabacha109"); $m->connect("chabacha109","xxxx"); .....
----------------------------------------------------------------------
je crois que c'est parfait ? non ?
bon, dans cet exemple la page "modéle.php" est un ensemble des fonctions,
heureusement ici les appelles vers les fonctions est assez simple,
mais dans le cas où la page "modéle.php" soit une classe, comment faire dans ce cas ,
plutôt comment interroger les methodes de cette classe a partir la classe membre ??
j'ai une idée mais je ne suis pas sure ...
faire une instance de la classe modéle.php, ensuite appeller une methode..
le probléme ici c'est (a chaque appel a une methode de la classe membre il faut faire une instance de la classe modéle.php..) c'est trop couteux en mémoire....je crois
voila donc.
merci pour votre attention ^_^
To Be Or Not To Be , Marwen
Salut,
Tu n'as pas encore tout à fait compris.
Pour commencer, la vue ne contient pas de code de code PHP.
Enfin, si, pour afficher les variables, faire des boucles, des conditions (afficher un message s'il n'y a aucun article par exemple).
Ici, ta vue fait appel au contrôleur, ce n'est pas normal.
Un modèle représente une ressource. Ainsi, tu as un modèle pour les membres, un autre pour les articles, un autre pour les catégories, etc.
Le modèle est souvent un classe contenant des méthodes pour ajouter, modifier, supprimer ou récupérer les données d'un élément (une news, un membre, etc).
Quant au controleur, dans ton cas, utiliser une classe ne sert à rien.
Ça peut être utile dans la cas où tu as une classe de base « Controller » de base contenant des méthodes pour (par exemple) traiter la requête HTTP, la mise en cache, les cookies, etc : c'est plus souvent utilisé dans les frameworks.
Tu n'as pas encore tout à fait compris.
Pour commencer, la vue ne contient pas de code de code PHP.
Enfin, si, pour afficher les variables, faire des boucles, des conditions (afficher un message s'il n'y a aucun article par exemple).
Ici, ta vue fait appel au contrôleur, ce n'est pas normal.
Un modèle représente une ressource. Ainsi, tu as un modèle pour les membres, un autre pour les articles, un autre pour les catégories, etc.
Le modèle est souvent un classe contenant des méthodes pour ajouter, modifier, supprimer ou récupérer les données d'un élément (une news, un membre, etc).
Quant au controleur, dans ton cas, utiliser une classe ne sert à rien.
Ça peut être utile dans la cas où tu as une classe de base « Controller » de base contenant des méthodes pour (par exemple) traiter la requête HTTP, la mise en cache, les cookies, etc : c'est plus souvent utilisé dans les frameworks.
Bonjour,
Pourquoi n'essayerez-vous pas un Framework PHP comme Zend ou Symphony ?
Ils intègrent toutes ces notions MVC déjà implémentées et il existe de nombreux tutoriaux pour débuter.
Si vous maîtrisez bien PHP cela vaut la peine.
Zébulon
Pourquoi n'essayerez-vous pas un Framework PHP comme Zend ou Symphony ?
Ils intègrent toutes ces notions MVC déjà implémentées et il existe de nombreux tutoriaux pour débuter.
Si vous maîtrisez bien PHP cela vaut la peine.
Zébulon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
j'ai un probléme avec le réécriture des url sous zend...
lorsque je tape http://localhost:8888/zendtest/Public/ ,bah ici ça marche
il appel le controleur IndexController.php et la vue views/scripts/index/index.phtml.....
en fait IndexController.php c'est le controlleur par defaut méme pour index/index.phtml.
ensuite j'ai créé mon propre conrolleur et vue pour tester le mod rewrite:
application/controllers/AfficheController.php
application/views/scripts/affiche/index.phtml
lorsque je tape http://localhost:8888/zendtest/Public/affiche/index
il affiche :
An error occurred
Page not found.
il me redirige vers la page error/error.phtml, autrement dit
la ressource "affiche" de(AfficheController.php) et le service "index" de( function indexAction(){})
n'existent pas !!
d'ou vient le probléme, j'ai bien tout préparer ! , en plus il marche avec le controlleur et la vue par defaut
AIDEZ MOI SVP , merci beaucoup beacoup ^_^
To Be Or Not To Be , Marwen
j'ai un probléme avec le réécriture des url sous zend...
la class bootstrap.php : class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { } mon fichier .htaccess situé dans Public/ : RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
lorsque je tape http://localhost:8888/zendtest/Public/ ,bah ici ça marche
il appel le controleur IndexController.php et la vue views/scripts/index/index.phtml.....
en fait IndexController.php c'est le controlleur par defaut méme pour index/index.phtml.
ensuite j'ai créé mon propre conrolleur et vue pour tester le mod rewrite:
application/controllers/AfficheController.php
class AfficheController extends Zend_Controller_Action { public function init() { } public function indexAction() { } }
application/views/scripts/affiche/index.phtml
<center> hello ! c'est la vue de AfficheController.php !!! </center>
lorsque je tape http://localhost:8888/zendtest/Public/affiche/index
il affiche :
An error occurred
Page not found.
il me redirige vers la page error/error.phtml, autrement dit
la ressource "affiche" de(AfficheController.php) et le service "index" de( function indexAction(){})
n'existent pas !!
d'ou vient le probléme, j'ai bien tout préparer ! , en plus il marche avec le controlleur et la vue par defaut
AIDEZ MOI SVP , merci beaucoup beacoup ^_^
To Be Or Not To Be , Marwen
pas des réponses ! :(((
voila mon projet uploder sur 4shared pour mieux comprendre...
http:// www . 4shared . com / file / Hu28VRMX / zendtestSite_De_Zero.html?
merci d'avance
voila mon projet uploder sur 4shared pour mieux comprendre...
http:// www . 4shared . com / file / Hu28VRMX / zendtestSite_De_Zero.html?
merci d'avance
Je n'ai jamais utilisé Zend Framework, je ne saurais pas t'aider plus, désolé.
Bonne continuation.
« mon fichier .htaccess situé dans Public/ : »
Normalement tu devrais tomber directement dans ce dossier en tapant http://localhost:8888/ , sans avoir la possibilité de remonter dans les autres dossiers.
Bonne continuation.
« mon fichier .htaccess situé dans Public/ : »
Normalement tu devrais tomber directement dans ce dossier en tapant http://localhost:8888/ , sans avoir la possibilité de remonter dans les autres dossiers.