Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Programmez en orienté objet en PHP

    15 avril 2019 à 15:12:42

    @Zachee54 : OK je comprends mieux pourquoi j'ai rencontré cette difficulté de compréhension. Merci pour vos explications très claires. Encore merci et bonne journée.

    -
    Edité par Benzouye 15 avril 2019 à 18:08:07

    • Partager sur Facebook
    • Partager sur Twitter
      22 avril 2019 à 22:23:09

      bonsoir je suis un nouveau dans le forum et je ne sais pas vraiment comment sa se passe ici,mais bon j'ai un soucis avec mon code php,je recois cette erreur. aider moi SVP

       Notice: Object of class PDOStatement could not be converted to int in C:\wamp64\www\bulletin\essai.php on line 13


      voici mon code/

       <!doctype html>

      <html>

      <head>

      <title>mon site web</title>

      <meta charset="utf-8"/>

      <link rel="stylesheet" href="page.css">

      <?php

      $bdd=new PDO('mysql:host=localhost;dbname=bulletin','root','',array(PDO::ATTR_ERRMODE=> PDO::ERRMODE_EXCEPTION));

      $reponse=$bdd->query("SELECT litt FROM litt");

      $total1=$bdd->query("SELECT total FROM litt WHERE id=7");

      $total2=$bdd->query("SELECT total FROM litt WHERE id=8");


      $total=$total1+$total2;


      ?>

      </head>

      <body>

      <form method="POST" action="">

      total:<input type="text" value="<?php echo $total ?>">

      <input type="submit" value="envoyer">

      </form>


      </body>

      </html>

      -
      Edité par Aldo nan 22 avril 2019 à 22:25:02

      • Partager sur Facebook
      • Partager sur Twitter
        29 avril 2019 à 21:35:22

        Salut @Aldo nan. Comment tu vas? J'ai regardé ton code et je crois que tu fais erreur après tes requêtes. En fait $total1 et $total2 contiennent(sous forme tableau) le résultat de tes requêtes_ Alors pour accéder aux valeurs que tu désires, tu dois les piocher(fetch) avant de faire la somme, du genre

        `$resultat1 = $total1->fetch();

        $resultat2 = $total2->fetch();

        $total = $resultat1['total'] + $resultat2['total'];`

        n'oublies pas que ici, $resultat1 et $resultat2 sont des tableaux dont chaque identifiant(ici total) pointe sur une valeur. Tu y accèdes donc simplement en la référençant. 

        J’espère que tu trouves ton compte dans ceci l'ami. 

        • Partager sur Facebook
        • Partager sur Twitter

        paulTchaa8

          30 avril 2019 à 10:09:14

          Bonjour,

          Pour le TP combat_v2 j'ai plusieurs questions, une de code et 3 autres de "jeu" :

          La correction met le calcul des dégats en fonction de l'atout dans la class Guerrier, mais un guerrier peut se battre contre un magicien, ou 2 magiciens, on devrait pouvoir modifier l'atout du magicien quand il reçoit un sort. On peut le mettre dans la classe Personnage dans notre code, mais je trouve son choix bancal.

          L'atout n'augmente pas, il est juste modifié ponctuellement. C'est pas une question, je suis juste perdu dans l'utilisation de cet atout. (en fait ça je verrai peut-être dans la suite du TP, pour l'instant c'est le cas).

          L'atout du magicien doit être différent de 0 pour qu'il puisse lancer un sort, mais si son atout est à 0 parce qu'il a infligé plus de 90 de dégats au coup d'avant, et comme il n'est pas modifié, il ne pourra plus se battre...

          Voilà, c'est pas des problèmes bloquants, juste des questions de règles du jeu :)

          • Partager sur Facebook
          • Partager sur Twitter
            4 mai 2019 à 8:10:06

            Le cours sur la POO est excelent, pour ceux qui on dut mal a suivre, il faut creuser un peu plus ! faire des recherche sur le net, voir d'autres tutos, faire refaire encore et encore jusqu'a comprendre... Perso : merci a vyk12, super boulot, et en plus c'est gratos !!! MERCI.
            • Partager sur Facebook
            • Partager sur Twitter
              9 mai 2019 à 21:43:07

              Bonjour,

              Sincèrement, je vous remercie pour ce cours.

              Mais il est important de notifier que :

              - Ce cours est extrêmement difficile, il n'est vraiment pas fait pour tout le monde : je pense que vous devriez revoir la difficulté du cours qui est actuellement à moyenne car j'ai suivi le cours sur Java EE qui était supposé être difficile et ce sans aucune base sur la POO et je n'ai pas eu autant de difficultés.
              - Diviser le cours en deux par exemple, modifier le temps allouer : 30 heures est largement insuffisant
              - Aussi plus de pratique, avec des résultats et une approche plus douce serait louable
              - Pour finir, certains liens pointe vers un site hébergé par OVH(visiblement) qui n'est plus disponible.

              Je me suis accroché jusqu'au UML, MVC, après sincèrement...

              • Partager sur Facebook
              • Partager sur Twitter
                18 juin 2019 à 14:20:18

                ...

                -
                Edité par fredouillieeeee 20 juin 2019 à 13:34:15

                • Partager sur Facebook
                • Partager sur Twitter
                  18 juin 2019 à 19:11:49

                  bonjour, c'est difficile le POO, mais je lâche jamais :)

                  merci  de m 'aider car je suis bloqué depuis deux jours dans le tp mini-jeux de combat 

                  j'ai essayer de creer un nouveau personnage  mais ca marche pas avec moi 

                  merci de m'aider de trouver ou est mon faute, ci-dessous les scripts et merci  

                  <?php
                  class PersonnagesManager
                  {
                  	private $_bdd;
                  	public function setBdd($bdd)
                  	{
                  		$this->_bdd=$bdd;
                  	}
                  
                  	public function __construct($bdd)
                  	{
                  		$this->setBdd($bdd);
                  	}
                      public function add(Personne $pers)
                      {
                       // Préparation de la requête d'insertion.
                      // Assignation des valeurs pour le nom du personnage.
                      // Exécution de la requête.
                      $req=$pers->_bdd->prepare('INSERT INTO personnages (nom)value(:nom)');
                      $req->execute(array(
                      'nom'=>$pers->nom() 
                      ));
                      $pers->hydrate(array(
                      'id'=>$this->_bdd->lastInsertId(),
                      'degats'=>0
                      ));
                      // Hydratation du personnage passé en paramètre avec assignation de son identifiant et des dégâts initiaux (= 0).
                    }
                    
                    public function count()
                    {
                      // Exécute une requête COUNT() et retourne le nombre de résultats retourné.
                      return $this->_bdd->query('SELECT COUNT(*)FROM personnages')->fetchcolumn();
                    }
                  
                  
                  
                  }
                  
                  ?>

                  classe personne

                  <?php
                  class Personne
                  {
                  	private $_id;
                      private $_nom;
                      private $_degats; 
                      const CESTMOI=1;
                      const PERSONNE_TUE=2;
                      const PERSONNE_FRAPPE=3;
                  
                  public function frapper(Personne $pers)
                  {
                       // Avant tout : vérifier qu'on ne se frappe pas soi-même.
                       // Si c'est le cas, on stoppe tout en renvoyant une valeur signifiant que le personnage ciblé est le personnage qui attaque.
                  if ($this->_id==$pers->id()) {
                  	return self::CESTMOI;
                  }
                      // On indique au personnage frappé qu'il doit recevoir des dégâts.
                  return $pers->recevoirDegats();
                  }
                  public function recevoirDegats()
                  {
                  	// On augmente de 5 les dégâts.
                      $this->_degats+=5;
                      // Si on a 100 de dégâts ou plus, la méthode renverra une valeur signifiant que le personnage a été tué.
                      if ($this->_degats>=100) {
                      	return self::PERSONNE_TUE;
                      }
                      return self::PERSONNE_FRAPPE;
                      // Sinon, elle renverra une valeur signifiant que le personnage a bien été frappé.
                  }
                  
                  //setter
                  public function setId($id)
                  {
                  	$this->_id=$id;
                  }
                  public function setNom($nom)
                  {
                  	$this->_nom=$nom;
                  }
                  public function setDegats($degats)
                  {
                  	$this->_degats=$degats;
                  }
                  public function id()
                  {
                  	return $this->_id;
                  }
                  public function nom()
                  {
                  	return $this->_nom;
                  }
                  public function degats()
                  {
                  	return $this->_degats;
                  }
                  public function hydrate(array $donnees)
                  {
                  	foreach ($donnees as $key => $value) {
                  		$methode='set'.ucfirst($key);
                  		if (method_exists($this, $method)) {
                  			$this->$method($value);
                  		}
                  	}
                  }
                  public function __construct(array $donnees)
                  {
                  	$this->hydrate($donnees);
                  }
                  
                  }
                  ?>

                  page exécution

                  <!DOCTYPE html>
                  <html>
                  <head>
                  	<meta charset="utf-8">
                  	<title>jeux</title>
                  </head>
                  <body>
                  	<form action=""method="post">
                  		<p>
                  			<input type="text" name="nom">
                  			<input type="submit" name="creer" value="creer nouveau personnage">
                  			<input type="submit" name="utiliser" value="utiliser un personnage">
                  		</p>
                  	</form>
                  
                  </body>
                  </html>
                  <?php 
                  //on enregistre notre autoload
                  
                  	require $classname.'MONCLASSPERSO.php';
                      require $classname.'MONCLASS_MANAG.php';
                  
                     $bdd=new PDO('mysql:host=localhost;dbname=test0;charset=utf8','root','');
                     $manager=new PersonnagesManager($bdd);
                     var_dump($manager);
                     if (isset($_POST['creer']) && isset($_POST['nom'])) // Si on a voulu créer un personnage.
                  {
                  	$donnees=array('nom' => $_POST['nom']);
                    $perso = new Personne($donnees); // On crée un nouveau personnage.
                    var_dump($perso);
                    }
                    $manager->add($perso);
                    
                  ?>

                  mon table dans la base est :   Table: personnages 

                  <form style="font-family: 'Times New Roman'; font-size: medium;" action="http://localhost/POO/tp%20mini%20jeux/jeux.php" method="post">

                  ci dessous le message d'erreur qu'il affiche:

                  object(PersonnagesManager)#2 (1) { ["_bdd:private"]=> object(PDO)#1 (0) { } } object(Personne)#3 (3) { ["_id:private"]=> NULL ["_nom:private"]=> NULL ["_degats:private"]=> NULL } 

                  </form>

                  Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\POO\tp mini jeux\MONCLASS_MANAG.php on line 19





                  -
                  Edité par DhaouadiArbi 18 juin 2019 à 19:23:05

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 juin 2019 à 20:23:40

                    @DhaouadiArbi: C'est normal, tu ne dois pas utiliser la méthode prepare sur la variable  qui est passée à ta méthode add, mais tu dois utiliser $this, soit :

                    $this->_bdd->prepare('INSERT INTO personnages (nom)value(:nom)');
                    // Au lieu de :
                    $pers->_bdd->prepare('INSERT INTO personnages (nom)value(:nom)');

                    La variable $pers, c'est la classe Personne et non la classe PersonnagesManager.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                      30 juin 2019 à 13:42:40

                      Bonjour à tous,

                      Je ne comprends pas mon erreur, voici le message de php :

                      "Notice: Undefined variable: pages in page_mainspropres.php on line 35"

                      et mon code :

                      class PagesManager {
                      
                          public function __construct($bdd) {
                              $this->bdd=$bdd;
                          }
                      /* ... */
                      }
                      
                      abstract class Pages {
                        protected $adrLien,
                                  $titreLien,
                                  $ancres,
                                  $associes,
                                  $resumeLien;
                       
                        public function __construct(array $donnees) {
                          $this->hydrate($donnees);
                          $this->type = strtolower(static::class);
                        }
                      
                        public function hydrate(array $donnees) {
                          foreach ($donnees as $key => $value) {
                            $method = 'set'.ucfirst($key);
                           
                            if (method_exists($this, $method)) {
                              $this->$method($value);
                            }
                          }
                        }
                       
                        // GETTERS - SETTER //
                       
                        public function adrLien() {
                          return $this->adrLien;
                        }
                       
                        public function titreLien() {
                          return $this->titreLien;
                        }
                       
                        public function ancres() {
                          return $this->ancres;
                        }
                      
                        public function associes() {
                          return $this->associes;
                        }
                      
                        public function resumeLien() {
                            return $this->resumeLien;
                        }
                      }
                      
                      try {
                              $this->bdd = new PDO('mysql:host=localhost;dbname=lda', '/* ... */', '/* ... */', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                          } catch(Exception $e) {
                              die('Erreur : '.$e->getMessage());
                          }
                      
                          $manager = new PagesManager($bdd);
                          $retourPages = $manager->getList($pages->ancres());


                      Les classes sont sur des fichiers séparés mais les "require()" fonctionnent, j'ai tout mis ensemble pour simplifier le code ici.

                      J'ai repris le code du jeux de combat #2 en adaptant à mes variables, mais j'ai dû rater un truc.

                      Merci pour votre aide :)




                      • Partager sur Facebook
                      • Partager sur Twitter
                        30 juin 2019 à 13:54:14

                        Bonjour.

                        morgpion a écrit:

                        Bonjour à tous,

                        Je ne comprends pas mon erreur, voici le message de php :

                        "Notice: Undefined variable: pages in page_mainspropres.php on line 35"

                        et mon code :

                        class PagesManager {
                        
                            public function __construct($bdd) {
                                $this->bdd=$bdd;
                            }
                        /* ... */
                        }
                        
                        abstract class Pages {
                          protected $adrLien,
                                    $titreLien,
                                    $ancres,
                                    $associes,
                                    $resumeLien;
                         
                          public function __construct(array $donnees) {
                            $this->hydrate($donnees);
                            $this->type = strtolower(static::class);
                          }
                        
                          public function hydrate(array $donnees) {
                            foreach ($donnees as $key => $value) {
                              $method = 'set'.ucfirst($key);
                             
                              if (method_exists($this, $method)) {
                                $this->$method($value);
                              }
                            }
                          }
                         
                          // GETTERS - SETTER //
                         
                          public function adrLien() {
                            return $this->adrLien;
                          }
                         
                          public function titreLien() {
                            return $this->titreLien;
                          }
                         
                          public function ancres() {
                            return $this->ancres;
                          }
                        
                          public function associes() {
                            return $this->associes;
                          }
                        
                          public function resumeLien() {
                              return $this->resumeLien;
                          }
                        }
                        
                        try {
                                $this->bdd = new PDO('mysql:host=localhost;dbname=lda', '/* ... */', '/* ... */', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                            } catch(Exception $e) {
                                die('Erreur : '.$e->getMessage());
                            }
                        
                            $manager = new PagesManager($bdd);
                            $retourPages = $manager->getList($pages->ancres());


                        Les classes sont sur des fichiers séparés mais les "require()" fonctionnent, j'ai tout mis ensemble pour simplifier le code ici.

                        J'ai repris le code du jeux de combat #2 en adaptant à mes variables, mais j'ai dû rater un truc.

                        Merci pour votre aide :)

                        Pour commencer, une classe abstraite abstract ne peut pas être initialisée.

                        Source: PHP: Abstraction de classes - Manual.

                        Ensuite, l'erreur t'indique que la variable $pages n'est pas définie.

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                          30 juin 2019 à 14:35:41


                          Lartak a écrit:

                          Bonjour.

                          Pour commencer, une classe abstraite abstract ne peut pas être initialisée.

                          Source: PHP: Abstraction de classes - Manual.

                          Ensuite, l'erreur t'indique que la variable $pages n'est pas définie.


                          J'ai copié-collé le code du prof, du coup j'ai laissé "abstract" à la classe, mais là tout de suite je ne me souviens pas comment ça s'utilise. Par contre ma classe Pages n'est pas instanciée, c'est pagesManager qui l'est.

                          Pour l'erreur, je me suis trompé de ligne, d'abord il y a celle-là, la suivante c'est "normal", j'apprends..., j'avance étape par étape ;)

                          Notice: Undefined variable: bdd in page_mainspropres.php on line 34

                          "Undefined variable" : j'avais compris qu'elle n'est pas définie. Mon problème c'est "pourquoi ?". En retirant "abstract" j'ai la même erreur pour $bdd.

                          Edit :
                          J'ai trouvé : j'avais laissé $this->bdd" un peu avant pour la connexion à la base en copiant-collant hors d'une classe :

                          $this->bdd = new PDO(/* ... */
                          

                          Je reviendrai pour les erreurs suivantes si je bloque.
                          Merci pour la réponse et les infos en tous cas :)




                          -
                          Edité par morgpion 30 juin 2019 à 14:59:44

                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 juillet 2019 à 17:57:45

                            Salut que signifie le mot $this->
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 juillet 2019 à 18:41:58

                              IbrahimYakhoub a écrit:

                              Salut que signifie le mot $this->

                              Si tu veux le savoir, c'est indiqué ici.

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                5 juillet 2019 à 18:18:46

                                Bonjour,

                                Après avoir entamé ce cours il y a plus d'un an, laissé de côté durant quelques mois parce que j'avais d'autres obligations, je le reprends aujourd'hui.

                                Et je bloque sincèrement sur l'activité de cache.

                                Est-ce que quelqu'un pourrait m'expliquer ?

                                Merci d'avance ;).

                                Vincent

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Vincent ERHART

                                Formateur / Développeur web

                                  5 juillet 2019 à 18:35:29

                                  Bonjour.

                                  vincent48 a écrit:

                                  Bonjour,

                                  Après avoir entamé ce cours il y a plus d'un an, laissé de côté durant quelques mois parce que j'avais d'autres obligations, je le reprends aujourd'hui.

                                  Et je bloque sincèrement sur l'activité de cache.

                                  Est-ce que quelqu'un pourrait m'expliquer ?

                                  Merci d'avance ;).

                                  Vincent

                                  Qu'est-ce que tu ne comprends pas exactement ?

                                  Le principal prérequis à avoir pour effectuer l'activité, c'est de savoir lire un fichier et écrire dans un fichier.

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                    6 juillet 2019 à 13:51:35

                                    Merci pour votre réponse.

                                    Je trouve que vous êtes un peu dur avec moi là ... tout le monde n'a pas votre aisance ou vos connaissances ;).

                                    Autant je suis à l'aise avec la programmation d'une manière générale, mais là le système de cache me pose un souci.

                                    J'aimerais en fait être rassuré sur le point suivant : mettre en cache consiste uniquement à enregistrer le code HTML dans un fichier ? Puis bien sûr enregistrer ce fichier dans l'arborescence du site ?

                                    Je me pose peut-être des problèmes qui n'existent pas ...

                                    Il y a d'ailleurs également autre chose qui me gêne : dans l'archive fournie pour faire l'activité, il n'y a aucun fichier index.php ... cela signifie que c'est à moi de le créer ?

                                    Merci d'avance pour votre aide et votre bienveillance ;).

                                    V

                                    -
                                    Edité par vincent48 6 juillet 2019 à 13:58:28

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Vincent ERHART

                                    Formateur / Développeur web

                                      6 juillet 2019 à 21:22:59

                                      Bonsoir Vincent48,

                                      Avez suivi tout le cours en entier avant de vous lancer dans l'activité finale ?

                                      De plus, en prenant le temps, de parcourir le forum dédié à ce cours, vous trouverez des pistes pour rendre un travail correct.

                                      Allez courage !

                                      Philippe

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                                        6 juillet 2019 à 23:06:20

                                        vincent48 a écrit:

                                        Merci pour votre réponse.

                                        Je trouve que vous êtes un peu dur avec moi là ... tout le monde n'a pas votre aisance ou vos connaissances ;).

                                        Autant je suis à l'aise avec la programmation d'une manière générale, mais là le système de cache me pose un souci.

                                        J'aimerais en fait être rassuré sur le point suivant : mettre en cache consiste uniquement à enregistrer le code HTML dans un fichier ? Puis bien sûr enregistrer ce fichier dans l'arborescence du site ?

                                        Je me pose peut-être des problèmes qui n'existent pas ...

                                        Il y a d'ailleurs également autre chose qui me gêne : dans l'archive fournie pour faire l'activité, il n'y a aucun fichier index.php ... cela signifie que c'est à moi de le créer ?

                                        Merci d'avance pour votre aide et votre bienveillance ;).

                                        V

                                        -
                                        Edité par vincent48 il y a environ 8 heures

                                        Je ne vois pas en quoi j'ai été dur avec vous, je vous ait simplement demandé ce que vous n'aviez pas compris exactement pour l'activité et je vous ai indiqué le principal prérequis à avoir pour le faire.

                                        Non, il ne s'agit pas juste d'écrire le code HTML dans un fichier, comme il est indiqué dans l'activité, le code HTML c'est uniquement pour la mise en cache des vues, il y a également la mise en cache des données, soit la mise en cache des enregistrements récupérés via la base de données.

                                        De plus que pour chaque fichiers de cache, il ne faut pas simplement y écrire le code HTML ou les données sérialisées, mais également et ce sur la première ligne du fichier le timestamp de la génération du cache.

                                        Il y a également la notion de classe à utiliser :

                                        • La création d’une classe gérant le cache : la gestion du cache doit se faire grâce à une instance d’une classe que vous créerez au sein de la bibliothèque.

                                        Il vous faut donc lire l'intégralité de l'énoncé de l'activité et s'il y a certains points de l'énoncé que vous ne comprenez toujours pas, dans ce cas là nous le préciser, c'est ce que je disais quand j'avais posé la question dans ma précédente réponse.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                          7 juillet 2019 à 7:41:10

                                          Désolé, j'ai certainement mal interprété votre réponse.

                                          Lorsque je reprends cette partie de l'énoncé ...

                                          Vous devrez mettre en cache plusieurs parties du site :

                                              La vue correspondant à la page d’accueil du site.
                                              Chacune des news.
                                              Toutes les listes de commentaires (une liste de commentaires correspond à l’ensemble des commentaires liés à une news).

                                          D'où une certaine incompréhension de ma part sur la nature des données à enregistrer dans le fichier cache, à moins que cela reste à ma libre appréciation ? Vous m'avez bien répondu qu'il y a différents types de données, mais en relisant la consigne cela ne m'apparaît pas de manière aussi claire. Moi j'avais compris qu'il faut générer le fichier cache à partir de la vue qui est générée pour : la page d'accueil, les news, la liste des commentaires. Donc ce que j'avais compris c'est que le cache ne doit contenir que du HTML. Par contre se pose un autre problème : il est écrit en tête des consignes qu'un fichier cache se compose de deux parties : le timestamp et les données sérialisées ... pour quelle raison est-ce qu'il serait nécessaire de sérialiser une page codée en HTML ?

                                          Bref c'est brouillon dans ma tête j'ai du mal à y voir clair.

                                          Vincent

                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Vincent ERHART

                                          Formateur / Développeur web

                                            7 juillet 2019 à 11:19:29

                                            Quand il est question de sérialisation, c'est pour les données, soit celles récupérées en base de données.

                                            Quand il est indiqué les différentes parties du site, c'est pour les fichiers de caches de vues et donc les fichiers de caches de vues, c'est bien le code HTML qui est générée, contrairement aux fichiers de caches de données, dans les quelles les données récupérées à la base de donnes, doivent être sérialisées avant d'être sauvegardées dans le fichier.

                                            Donc pour résumer, il est indiqué dans l'énoncé, qu'il faudra faire deux types de fichier de cache :

                                            1. Les fichiers de cache de vues, soit le code HTML générées des vues (accueil du site, affichage d'une news, toutes les listes de commentaires)
                                            2. Les fichiers de cache de données, soit les données récupérées via la base de données qui doivent être sérialisées

                                            Pour les deux types, le timestamp de la génération du fichier devra être présent sur la première ligne du fichier.

                                            Donc comme énoncé, les fichiers de cache de données, ce n'est pas facultatif mais obligatoire.

                                            -
                                            Edité par Lartak 7 juillet 2019 à 11:22:01

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                              7 juillet 2019 à 12:37:33

                                              Ok déjà j'y vois un peu plus clair.

                                              Par contre je ne sais pas l'intérêt de mettre les données en cache si les vues sont déjà mises en cache. Les vues sont générées à partir des données, donc si les vues sont en cache, quel est l'intérêt de mettre les données en cache ?

                                              Hmmm ...

                                              Philippe2463 a écrit:

                                              Bonsoir Vincent48,

                                              Avez suivi tout le cours en entier avant de vous lancer dans l'activité finale ?

                                              De plus, en prenant le temps, de parcourir le forum dédié à ce cours, vous trouverez des pistes pour rendre un travail correct.

                                              Allez courage !

                                              Philippe


                                              Oui j'ai bien suivi le cours en entier. De ce côté là pas de souci, ce qui ne m'empêche pas de bloquer ;).

                                              -
                                              Edité par vincent48 7 juillet 2019 à 12:41:34

                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Vincent ERHART

                                              Formateur / Développeur web

                                                7 juillet 2019 à 12:51:00

                                                vincent48 a écrit:

                                                Ok déjà j'y vois un peu plus clair.

                                                Par contre je ne sais pas l'intérêt de mettre les données en cache si les vues sont déjà mises en cache. Les vues sont générées à partir des données, donc si les vues sont en cache, quel est l'intérêt de mettre les données en cache ?

                                                Hmmm ...

                                                Le but d'une activité est de s'assurer que la personne a bien compris le cours, il peut donc arriver que ce qui est demandé dans une activité puisse être répétitif ou pas forcément logique d'un point de vue technique.

                                                Pour cette activité, c'est principalement pour vérifier que la personne ait compris les deux types de caches (données et HTML) et qu'il est capable de les produire.

                                                Car par la suite quand la personne voudra créer sa propre application par exemple, il pourra très bien choisir de mettre en cache seulement le code HTML généré pour certaines parties de son site et pour d'autres de ne mettre en cache que les données.

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                                  7 juillet 2019 à 13:21:05

                                                  Ok ça marche ;). Je cherchais une logique où il n'y en a pas en fait !
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Vincent ERHART

                                                  Formateur / Développeur web

                                                    8 juillet 2019 à 21:20:10

                                                    Bonsoir, j'ai un petit soucis dans un includes " Parse error: syntax error, unexpected end of file in D:\wamp64\www\includes\header.php on line 41"

                                                    Je vous met le lien paste de mon code : https://paste.artemix.org/s/dSmgJb

                                                    Merci d'avance

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      8 juillet 2019 à 21:37:14

                                                      Bonsoir.

                                                      EthanGuingand a écrit:

                                                      Bonsoir, j'ai un petit soucis dans un includes " Parse error: syntax error, unexpected end of file in D:\wamp64\www\includes\header.php on line 41"

                                                      Je vous met le lien paste de mon code : https://paste.artemix.org/s/dSmgJb

                                                      Merci d'avance

                                                      Tu as oublié de fermer la condition après la ligne 26.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                                        8 juillet 2019 à 21:49:19

                                                        MErci de ta réponse mais à la ligne 26 il n'y a pas de condition et je ne vois rien qui manque
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          8 juillet 2019 à 22:25:55

                                                          EthanGuingand a écrit:

                                                          MErci de ta réponse mais à la ligne 26 il n'y a pas de condition et je ne vois rien qui manque

                                                          Tu as la condition à la ligne 22, ainsi que le else de la condition à la ligne 24 et logiquement tu devrais fermer la condition après la ligne 26.

                                                          -
                                                          Edité par Lartak 8 juillet 2019 à 22:27:21

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                                                            9 juillet 2019 à 8:42:36

                                                            Lartak a écrit:

                                                            EthanGuingand a écrit:

                                                            MErci de ta réponse mais à la ligne 26 il n'y a pas de condition et je ne vois rien qui manque

                                                            Tu as la condition à la ligne 22, ainsi que le else de la condition à la ligne 24 et logiquement tu devrais fermer la condition après la ligne 26.

                                                            -
                                                            Edité par Lartak il y a environ 10 heures

                                                            Merci ;)



                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              9 juillet 2019 à 10:38:57

                                                              Salut, j'ai une petite question sur le cours et plus précisément sur les interfaces. Je ne comprend pas à quoi cela sert d'implémenter une interface si c'est pour écrire toute ses fonctions dans la classe. Autant ne rien implémenter.

                                                              Quelqu'un pourrait m'expliquer l'utilité, je ne la saisie pas en lisant le cours.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼





                                                              ᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼᲼






























































































































































                                                              MOOC Programmez en orienté objet en PHP

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown