Class et MVC

Class et MVC - PHP - Programmation

Marsh Posté le 04-10-2006 à 17:01:31    

Bonjour à tous...
 
Alors MVC est un bien grand mot... on va dire que je vais le faire autan que possible, avec mes maigre connaissances, et sans trop me prendre la tête. (et pis sans template.. pas envie d'apprendre encore un langage)
 
Alors pour plusieurs sites que je compte soit remettre à jour, soit créer, j'aimerais savoir plusieurs chose.
 
1a - Est ce que les objets crée sont persistant ?  
1b - c'est à dire que si je crée un objet (new login.user()), en déclarant des variables private que je modifierais avec des fonctions de la classe, est ce que c'est variables je peux les retrouver d'une page sur l'autre ?
1c - est ce que ces variables pour être persistantes doivent appartenir à une session ?
1d - Est ce qu'il faut donc que je déclare l'ouverture d'une session avant de créer l'objet ?
 
2 - si ces variables sont persistantes, comment appeler le destructeur qui normalement est appelé lors de la fin du script (si j'ais bien compris  :heink: ).
 
3 - Je compte faire les classes suivantes :
 

Code :
  1. class User {
  2. public $Login;
  3. private $Id=0;
  4. private $Administration=0;
  5. private $Permission=0;
  6. public function __construct(){
  7. }
  8. public function __destruct(){
  9. }
  10. public function test_user(){
  11. }
  12.     public function User() {
  13.     }
  14. class Error {
  15. private $Sortie_erreur=0;
  16. function Erreurs_persos(){
  17. }
  18. function Sortie_erreur(){
  19. }
  20.     function Error() {
  21.     }
  22. class Formulaire {
  23. public function Verification_Form(){
  24. }
  25.     public function Formulaire() {
  26.     }
  27. }


 
Est ce que je suis sur la bonne voie ? des idées ?

Reply

Marsh Posté le 04-10-2006 à 17:01:31   

Reply

Marsh Posté le 04-10-2006 à 17:40:04    

en résumé : lis la doc, tout y est écrit.
En plus long :
 
1a non
1b non
1c en théorie oui sauf pour les valeurs de type ressources. mais pour les objets mieux vaut généralement les sérialiser : http://fr3.php.net/manual/fr/langu [...] zation.php
 
1d vu ce qui est dessus, evidement que oui
 
2 de toute maniére, les objets seront détruits. Seules les infos mises en sessions seront gardé, mais ca veut dire recréer des objets dans chaque page.
 
Pour plus de détail lit donc la doc.
 
PS : Vu que la couche d'affichage est normalement séparé de la couche de traitement dans un systéme de MVC, je ne vois pas comment tu peux dire que tu fais du MVC sans utiliser un systéme de template ou autre systéme approchant permettant de ne pas se préoccupé de l'affichage pendant les traitements.

Reply

Marsh Posté le 04-10-2006 à 17:50:34    

omega2 a écrit :

en résumé : lis la doc, tout y est écrit.


j'ais cherché... mais pas au bon endroit :p
 

omega2 a écrit :


En plus long :
 
1a non
1b non
1c en théorie oui sauf pour les valeurs de type ressources. mais pour les objets mieux vaut généralement les sérialiser : http://fr3.php.net/manual/fr/langu [...] zation.php
 
1d vu ce qui est dessus, evidement que oui
 


Ouais.. super... obligé de tout passer par session (et je ne vais certainnement pas passer par des session_register())... donc serialize.. je le note  
('tain... ça me complique plus de chose que ça m'en facilite, cette histoire)
 
 

omega2 a écrit :


 
2 de toute maniére, les objets seront détruits. Seules les infos mises en sessions seront gardé, mais ca veut dire recréer des objets dans chaque page.
 
Pour plus de détail lit donc la doc.
 
PS : Vu que la couche d'affichage est normalement séparé de la couche de traitement dans un systéme de MVC, je ne vois pas comment tu peux dire que tu fais du MVC sans utiliser un systéme de template ou autre systéme approchant permettant de ne pas se préoccupé de l'affichage pendant les traitements.


 
Alors vi.. il est vrai que je n'ais pas encore pensé vraiment la partie MVC. Je souhaiterais faire ensorte qu'il y ait une séparation, mais il faut encore que je travail dessus.
 
En fait, je pensais créer des données génériques (des tableaux) sur lesquelles je pourrais appliquer de méthodes d'affichage, de sauvegarde, de traitement en fonction des besoins (idem pour la partie récupération des données). ça se précise, mais j'ais pas mal de nouvelles notions à assimiler, idem pour les façons de penser... donc pour le moment ça parait flou....  
 
Merci pour ces précisions


Message édité par chani_t le 04-10-2006 à 17:51:30
Reply

Marsh Posté le 04-10-2006 à 21:38:35    

N'oublie pas cet excellent topic : http://forum.hardware.fr/hardwaref [...] 7425-1.htm :)

Reply

Marsh Posté le 30-10-2006 à 15:46:34    

up...
juste pour donner les structures de mes classes :
 

Code :
  1. class config {
  2. public $userbdd1="";                // nom d'utilisateur de la base de donnée N°1
  3. public $hostbdd1="";               // Nom du serveur de base de données N°1
  4. public $pwbdd1="";                  // Mot de passe de connexion bdd N°1
  5. public $database1="";          // Nom de la base de données du site N°1
  6. public $userbdd2="";                // nom d'utilisateur de la base de donnée N°2
  7. public $hostbdd2="";               // Nom du serveur de base de données N°2
  8. public $pwbdd2="";                  // Mot de passe de connexion bdd N°2
  9. public $database2="";          // Nom de la base de données du site N°2
  10. public $mailwebmaster="";     // Adresse mail du webmaster
  11. public $nomsite="";     // Nom du site inscrit dans les mails
  12. public $css='';      // Nom du fichier css choisi
  13. /*
  14.  * Fonction de configuration de la gestion des erreurs
  15.  */
  16. function gestion_erreur($type_gestion) {
  17.  i
  18. }
  19. /*
  20.  * Fonction de génération d'erreur dans le journal système
  21.  */
  22. function report_erreur($niveau, $user, $ip, $message ) {
  23. }
  24. /*
  25.  * fonction de lecture du fichier de configuration
  26.  */
  27. function __construct($lecture, $chemin='', $fichier='') {
  28. }
  29. function __destruct() {
  30. }
  31. /*
  32.  * Fonction de mise en place d'une gestion des erreurs grâce au journal système
  33.  */
  34.     function config($type_gestion, $nomapp) {
  35.     }
  36.    
  37.     function resol ($width, $style='css') {
  38.    
  39. }
  40. class donnees {
  41. public $connect='';   // connection au serveur
  42. public $db='';    // Sélection de la base de données
  43. public $resultat='';  // résultat
  44. public $resultat2=array(); // variable secondaire de résultat
  45. function __construct() {
  46. }
  47. /*
  48.  * Fonction de lecture d'un fichier ini
  49.  */
  50. function read_ini($path, $nof, $protec) {
  51. }
  52. /*
  53.  * Fonction d'envois d'une requête de lecture à une base de données
  54.  */
  55. function read_bdd() {
  56. }
  57. /*
  58.  * Fonction de lecture d'un fichier csv
  59.  */
  60. function read_csv($path, $nof) {
  61. }
  62. /*
  63.  * Fonction de lecture d'un fichier texte
  64.  */
  65. function read_txt($path, $nof,$total) {
  66. }
  67. function read_xml($path, $nof) {
  68. }
  69. function write_bdd() {
  70. }
  71. function write_csv() {
  72. }
  73. function write_txt() {
  74. }
  75. function write_xml() {
  76. }
  77. function trie_csv () {
  78. }
  79. function trie_bdd() {
  80. }
  81. function trie_xml() {
  82. }
  83. function connex_bdd($config) {
  84. }
  85. function deconnex_bdd() {
  86. }
  87.     function donnees($type, $rq1='', $rq2='', $rq3='', $rq4='') {
  88.    
  89.     }
  90.     /*
  91.      * fonction de traitement de données xml récupérées pour le menu
  92.      */
  93.     function trait_menu_xml($niveau,$auth) {
  94.    
  95.     }
  96.     /*
  97.      * fonction de Traitement et d'exploration du fichier xml de menu
  98.      */
  99.     function trait_menu ($xml, $auth, $nv=1, $i=0) {
  100.    
  101. }
  102. class vues {
  103. public $menuadv='';
  104. function __construct() {
  105. }
  106. function entete($jour, $titre, $css) {
  107. }
  108. function jscript() {
  109. }
  110.     function vues() {
  111.     }
  112.    
  113.     function head() {
  114.     }
  115.    
  116.     function foot() {
  117.     }
  118.    
  119.     function menu($menu, $niveau=1) {
  120.    
  121.     }
  122.     /*
  123.      * Fonction récursive de réalisation du menu
  124.      */
  125.     function trait_menu($menu, $niveau=1) {
  126.    
  127.     }
  128.    
  129. }
  130. class cache {
  131. public $cache='';
  132. public $cacher='';
  133. /*
  134.  * Fonction de génération d'un tampon ou de récupération du cache
  135.  */
  136. function __construct($nom, $durée=1, $entête=0) {
  137. }
  138. /*
  139.  * Fonction de mise en cache du tampon
  140.  */
  141.     function cache() {
  142.       
  143.     }
  144.     /*
  145.      * Fonction de gestion du cache du navigateur grâce aux entête
  146.      */
  147.     function entête ($date_file, $entête, $expire, $heure) {
  148.    
  149.     }   
  150. }


 
Voila. aprés quelques jours de réflexion, ça commence à fonctionner

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed