Bonjour,
Je rencontre un petit problème avec mon code suite au TP : Refactoring de la formation POO.

Enfaite, je souhaiterai obtenir un titre différent en fonction de la page, donc je m'y prends exactement comme dans le TP.
Par exemple, dans le fichier post.php (destiné à afficher le contenu d'un seul article, j'ai :

    $app = App::getInstance();
    $post = $app->getTable('ArticleTable')->find($_GET['id']);

    if ( !isset($_GET['id']) || $post === false || empty($post) ) {

        $app->notFound();
        exit;

    } 

    $app->title = $post->title;

En faisait $app->title = $post->title, le titre de la page reste inchangé, il contient donc la valeur par défaut entrée dans le fichier App.php, soit :

public $title = 'Mon super titre';

(Je précise que le titre est récupéré de cette manière dans le fichier templates/default.php

<title><?= App::getInstance()->title; ?></title>

Comme dois-je m'y prendre pour que le titre s'affiche bel et bien comme je le souhaites en fonction de la page affichée ?

Merci d'avance pour votre aide !
Cordialement,
Joffrey.

1 réponse


SLK
Réponse acceptée

Salut,

il me semble (à confirmer...) que App::getInstance() renvoie une même instance seulement quand c'est écrit dans un même fichier.

Du coup, tu peux essayer d'utiliser $_SESSION à la place :

$_SESSION['page_title'] = $post->title;

et

<title><?= $_SESSION['page_title']; ?></title>