Bonjour à tous,
Je suis confronté à une erreur de logique, et je n'arrive pas à comprendre la démarche,
Dans mon GuestBook, je fais appel à une méthode getMessage :
public function getMessage():array
{
$content = trim(file_get_contents($this->file));
$lines = explode(PHP_EOL, $content);
$messages = [];
foreach($lines as $line) {
$data = json_decode($line, true);
$messages[] = new Message($data['username'], $data['message'], new DateTime("@" . $data['date']));
}
return array_reverse($messages);
}
La logique est celle ci :
Je creais une méthode getMessage pour ma class GuestBook,
Je recupère le fichier $file, dans lequel se trouve le message posté par l'utilisateur (class Message)
Je souhaite faire apparaître les msg dans mon HTML, donc je creais une methode toHTML() dans ma class Message.
public function toHTML()
{
$username = htmlentities($this->username);
$date = $this->date->format('d/m/Y à H:i');
$message = htmlentities($this->message);
return <<<HTML
<p>
<strong>{$username}</strong> <em> le {$date} </em><br>
{$message}
</p>
HTML;
}
Cependant, je ne comprends pas pourquoi je dois creer un new Message dans le ForEach, alors que le message existe deja...
Sur la vidéo du totoriel, il en parle a 32.50min.
J'èspere avoir un retour de votre part :)
Merci beaucoup